PDA

View Full Version : [CLOSED] .NET 4.5.1, Visual Studio 2013 and ASP.NET MVC 5 support?



anup
Oct 18, 2013, 10:48 AM
Hi,

Yesterday VS 2013 and .NET 4.5.1 were released. In addition, ASP.NET MVC 5 (amongst other ASP.NET updates) were released.

I appreciate this might be too soon to ask (though maybe you have tried the various preview/RCs from Microsoft) but just wondering if these are known to be okay for Ext.NET 2? And Ext.NET 1.x even?

We are hoping to migrate to VS 2013 and Windows Server 2012 R2 (which will have .NET 4.5.1) soon. MS claims 4.5.1 is a highly compatible in-place replacement (and hopefully it is) so in theory it should all be good (not sure about MVC 5 though) but we have been bitten by some subtle differences in the past (in non-Ext.NET code), so thought it best to ask?

In addition, I suppose your sample web.config's would need updating?

Thanks!

Daniil
Oct 18, 2013, 2:56 PM
Hi @anup,

I and Vladimir have not tested it yet. Maybe, Geoffrey or Daulet?

Either way, if it is released, we will test it one day and will be able to say something concrete.

anup
Oct 18, 2013, 3:07 PM
Thanks. Although this post was in the 2.x forum, I guess this will apply to, and be equally important for, Ext.NET 1.x as well.

For context, the rest of our team is hoping to upgrade our main big solution soon, which is still in Ext.NET 1.x, and I am hoping to start the migration to Ext.NET 2.x next week or the week after... While we don't have to move to .NET 4.5.1 immediately from an Ext.NET point of view, others in the team are keen to upgrade soon for other business/platform reasons.

Thanks!

geoffrey.mcgill
Oct 18, 2013, 5:32 PM
Hi Anup,

Thanks for the inquiry.

We will be supporting VS 2013, .NET 4.5.1 and, ASP.NET MVC 5.

Our 2.3.1 release was pushed early this morning, so we'll be moving onto these VS/ASP.NET updates first thing next week.

We'll be checking these in Ext.NET v1.x as well.

anup
Oct 21, 2013, 11:05 AM
Thanks. Looking forward to the upgrade :)

michaeld
Oct 22, 2013, 12:13 AM
If it helps to be assured, I'm already successfully publishing to a Windows Server 2012 with the latest build. I haven't upgraded to the new VS however or the new 4.5.1 .net.

anup
Oct 22, 2013, 1:37 PM
If it helps to be assured, I'm already successfully publishing to a Windows Server 2012 with the latest build. I haven't upgraded to the new VS however or the new 4.5.1 .net.

Thanks for that. We too have been succesfully running with Windows Server 2012 for many months (hoping to move to R2 shortly). We too have been on .NET 4.5. I am sure .NET 4.5.1 won't be a problem, but just wanted an official check on that... I may get some time to do some quick tests later this week. If I do I'll post results here.

anup
Oct 24, 2013, 11:18 AM
Just an update on what I have done so far:

1) Ext.NET 1.x

- Created a new web project with Visual Studio 2013
- The new dialog allows you to select which features of ASP.NET you want
- I selected everything :) (Web Forms, MVC, Web API)
- I referenced my local copy of the Ext.NET DLLs (and updated web.config as needed)
- Created a simple Default.aspx (WebForms) page
- Ran the page in two scenarios

Scenario 1) When adding reference to the Newtonsoft.Json.dll that Ext.NET 1 requires, I get a message saying it is already referenced (because MS bundles it in)

So first, I kept the Visual Studio bundled Json.NET (5.0.6 I think)

Result:
- As expected, 1.x doesn't work with the newer Json.NET DLL

Scenario 2) Removed the default Json.NET dll reference and explicitly added the one supported by Ext.NET 1.x

Result:
- Worked

Caveats:
- I didn't test 1.x MVC (I don't know if the older ASP.NET MVC versions are backward compatible with the newer one (v5?) that comes with VS2013).

Other thoughts:
- For my own needs with 1.x I don't need all 3 project options (Web Forms, MVC, Web API), so knowing 1.x WebForms works by just using the correct Json.NET assembly was sufficient for me.


2) Ext.NET 2.x

As expected this was a bit better.

Ran similar set up to that described above

Scenario 1) Using the Json.NET assembly provided by VS

Result:
- The Ext.NET.Default.aspx page worked (the one that shows a window where you submit a message)
- But there was a JavaScript error in the console (Ext.EventManager not defined, I think)

Scenario 2) I updated the references so the VS Json.NET assembly was replaced with the one used by Ext.NET

Result:
- It worked, without the JavaScript error

Visual Studio also generated some assembly binding redirect in the web.config file to redirect MVC to version 5, web pages to ver 3 and so on.

Other thoughts:
- This was a VERY quick test.
- Absolutely NOT thorough at all! I just wanted to get a feel of what to expect if using VS 2013 and if I target .NET Framework 4.5.1...


To the Ext.NET team: have you had a chance to figure out what/if any changes are needed in 1.x and 2.x to support VS 2013 (none I think) and .NET Framework 4.5.1 (possibly some though not sure).

Thanks!

Daniil
Nov 06, 2013, 3:40 AM
Thank you, Anup. Very valuable. We are going to check the things as well.

anup
Nov 11, 2013, 4:10 PM
Thanks Daniil.

I noticed you've recently checked in a Visual Studio 2013 solution with various commented out bits for MVC4 and MVC5 in the Ext.NET MVC Examples Explorer web.config.

Just a few follow-ups:

1) Have you noticed the default Ext.NET aspx page being rather sluggish/choppy to show the notification in the bottom corner when submitting a message in the main window? I find that to be the case in IE11, Firefox latest and Chrome latest (at that point didn't check older versions!).

For me, it turned out that the new (and neat) feature in Visual Studio, Browser Link, was the culprit.

As FYI, amongst various other ways to disable it, I put this into my web.config:


<add key="vs:EnableBrowserLink" value="false"/>

After that, the page was a lot smoother. More background info here:
http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

2) In the project I created - an Empty ASP.NET Web Application - I had selected everything: ASPX, MVC5, Web API. In doing so it brought in a reference to Json.NET 5.0.6, whereas Ext.NET ships with 5.0.8. So, I removed the in-built reference and referenced your one instead (because of the error I would get as mentioned in an earlier post).

I am guessing if ever I did a NuGet package update for the ASP.NET stuff, it may overwrite the 5.0.8 Json.NET with their one...? But this is probably a minor issue. Since my earlier post I've unfortunately not had much further time to look into this in more detail. Are you aware of any issues regarding this? (I noticed you had a binding redirect in your sample MVC Examples Explorer web.config - I found I didn't need that as I just referenced the Json.NET version you compile against. I don't know if there was a better way for me to handle this version mismatch?)

My final web.config looks something like this:



<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="extnet" type="Ext.Net.GlobalConfig" requirePermission="false"/>
</configSections>

<extnet theme="Neptune" scriptMode="Debug"/>

<appSettings>
<add key="webpages:Version" value="3.0.0.0"/>
<add key="webpages:Enabled" value="false"/>
<add key="PreserveLoginUrl" value="true"/>
<add key="ClientValidationEnabled" value="true"/>
<add key="UnobtrusiveJavaScriptEnabled" value="true"/>
<add key="vs:EnableBrowserLink" value="false"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1"/>

<httpHandlers>
<add path="*/ext.axd" verb="*" type="Ext.Net.ResourceHandler" validate="false"/>
</httpHandlers>

<httpModules>
<add name="DirectRequestModule" type="Ext.Net.DirectRequestModule, Ext.Net"/>
</httpModules>

<pages>
<namespaces>
<add namespace="System.Web.Helpers"/>
<add namespace="System.Web.Mvc"/>
<add namespace="System.Web.Mvc.Ajax"/>
<add namespace="System.Web.Mvc.Html"/>
<add namespace="System.Web.Routing"/>
<add namespace="System.Web.WebPages"/>
<add namespace="Ext.Net"/>
</namespaces>
<controls>
<add tagPrefix="ext" namespace="Ext.Net" assembly="Ext.Net"/>
</controls>
</pages>
</system.web>

<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="DirectRequestModule" preCondition="managedHandler" type="Ext.Net.DirectRequestModule, Ext.Net"/>
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="TRACEVerbHandler"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
<add name="DirectRequestHandler" verb="*" path="*/ext.axd" preCondition="integratedMode" type="Ext.Net.ResourceHandler"/>
</handlers>
</system.webServer>

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Deployment" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Razor" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>


All seems to work. The binding redirects added at the bottom were all inserted by Visual Studio automatically.

Thanks,
Anup

Daniil
Nov 12, 2013, 11:36 AM
I noticed you've recently checked in a Visual Studio 2013 solution with various commented out bits for MVC4 and MVC5 in the Ext.NET MVC Examples Explorer web.config.


You outran me:) I was going to update the thread with this information.



1) Have you noticed the default Ext.NET aspx page being rather sluggish/choppy to show the notification in the bottom corner when submitting a message in the main window? I find that to be the case in IE11, Firefox latest and Chrome latest (at that point didn't check older versions!).

For me, it turned out that the new (and neat) feature in Visual Studio, Browser Link, was the culprit.

As FYI, amongst various other ways to disable it, I put this into my web.config:


<add key="vs:EnableBrowserLink" value="false"/>

After that, the page was a lot smoother. More background info here:
http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx


Thank for the info. We will play with that feature.



2) In the project I created - an Empty ASP.NET Web Application - I had selected everything: ASPX, MVC5, Web API. In doing so it brought in a reference to Json.NET 5.0.6, whereas Ext.NET ships with 5.0.8. So, I removed the in-built reference and referenced your one instead (because of the error I would get as mentioned in an earlier post).

I am guessing if ever I did a NuGet package update for the ASP.NET stuff, it may overwrite the 5.0.8 Json.NET with their one...? But this is probably a minor issue. Since my earlier post I've unfortunately not had much further time to look into this in more detail. Are you aware of any issues regarding this? (I noticed you had a binding redirect in your sample MVC Examples Explorer web.config - I found I didn't need that as I just referenced the Json.NET version you compile against. I don't know if there was a better way for me to handle this version mismatch?)


So, are you referring Ext.NET manually? Just if you install it via NuGet, it should install Json.NET 5.0.8 removing 5.0.6 accordingly.

Well, if you refer it manually, it should not be a problem to remove Json.NET manually as well:) Well, I think there is no better way since you need to refer it manually (not via NuGet).

anup
Nov 12, 2013, 12:13 PM
So, are you referring Ext.NET manually? Just if you install it via NuGet, it should install Json.NET 5.0.8 removing 5.0.6 accordingly.

Well, if you refer it manually, it should not be a problem to remove Json.NET manually as well:) Well, I think there is no better way since you need to refer it manually (not via NuGet).

Yeah. I am using the latest code, so I am compiling it manually, locally. But yeah, looks like using NuGet sorts it out in the easiest way.

Thanks for the info.

Daniil
Nov 13, 2013, 4:43 AM
But yeah, looks like using NuGet sorts it out in the easiest way.

Yes, but it stops you to use Ext.NET from the SVN trunk...

anup
Nov 13, 2013, 8:28 AM
Yes, sorry I meant that as a general point. I will continue using the trunk :)

Baidaly
Nov 18, 2013, 4:14 PM
Hello everyone!

@Vladimir tested Ext.NET 1.x with MVC5 and didn't have any problems. However, if you will have any problems feel free to update the thread.