TOLOGIX - Infrastructure LawGuide (ILG)

P3 Prototype framework

Hi Anil,

What your comfort level, opinion, and experience with ASP.NET Core 1? In discussion with Derek his opinion is that this is more forward-looking than MVC 5.

Ryan

Comments & Events

Anil Vaghela
Hello Ryan,

The choice of going for ASP.NET Core or ASP.NET MVC approach would primarily depend on the type of application and the features that would be envisaged. If the application is more database intensive, then the ASP.NET MVC approach is more preferred as its Entity Framework is more robust and mature than the .Net Core. The latter is more recent and its Entity Framework will eventually evolve. This would mean that there would be lot of re-coding / upgrades as .Net Core matures. Please see below further observations/comments: 
  • We will be using many third party APIs those are compatible with ASP.NET MVC 5, we are unsure about .NET CORE whether it will support all these third party APIs. 
  • We can leverage benefit of large number of packages available in ASP.NET MVC 5. 
  • As per our study, for enterprise level applications ASP.NET MVC 5 is much better and recommended than .NET Core. 
  • For security purposes also, ASP.NET MVC is recommended than .Net Core. 
  • .Net Core is very new and hence very less online documentation and support is available, while for ASP.NET MVC 5 lots of documentation and online support is available from Microsoft. 
Having said this, we do not oppose the .NET Core. We are only trying to emphasize the scenario that is best suited for going with this approach. Unless, your vision also includes development and hosting for multi-OS / cross platform and having a single build than .NET CORE is the only way. E.g. if you envisage a Linux hosting then this is right but then what about SQL? Linux would still not support MS SQL!
 
The ISLG or P3 platforms are highly data intensive applications and very little manipulation or handling on the front-end (i.e. web pages). Most of our web pages are just rendering data in one way or the other which means the .NET’s Entity Framework has to be robust. No doubt, .NET CORE gives better performance on the front-end but its current shortcomings on the data access capabilities effectively off-sets the performance. 
 
We can work on .NET CORE too if this is the way forward and our ramp-up time will be few weeks only. 

Please let us know your thoughts.
Morgan Maguire, CEO
Hi Ryan,

Just following up on Anil's post above. Do you, Derek and Juan have any thoughts on this issue?

Note that we should also consider this issue in the context of ISLG, because I assume the we'll use the same framework as P3 when we rebuild the application next year.

Thanks,

Morgan
Derek Ethier, Industrial
Anil and Morgan,

Thanks for the response Anil. You make some good points regarding the decision to use .Net Core vs. MVC5 and, to be honest, there likely really isn't a "wrong" answer here.

With the recent release of Entity Framework 2.0 (EF Core), the feature parity between EF 6 is closing:

https://docs.microsoft.com/en-us/ef/efcore-and-ef6/features

... but there are still some missing pieces in EF that could be stumbling blocks in development.

It's also true that the number of available packages (through Nuget or other dependency management tools) and documentation is not as robust in .Net Core given the age of this technology vs. MVC5.

Both of these items could result in some delay in development as more code would need to be written, or alternative design considerations made to accommodate.

All that being said, from a future proof perspective, Microsoft is fully invested in .Net Core and the .Net Core Standard. The choice between more development effort today using tooling that meets the .Net Core Standard is much more future proof.

Also, the single point I'd disagree with above is on the security side. .Net Core Security being separated as separate middleware is a great decision on their part. They greatly simplified the approach, providing multiple provider support, separated the application server (Kestrel) from the app pools and provided a really solid boilerplate for user authentication.

They even have active bug bounty programs covering .Net Core (including Kestrel):

https://technet.microsoft.com/en-us/security/dn425036

Also, the fact that all of .Net Core is open source vs. the closed source nature of previous versions not only improves overall security (more eyes on the code, outside of Redmond) but it is provides another future-proofing vector if Microsoft decides to change strategies in the future.

Morgan, as I said above, there's not really a clear-cut yes/no answer on how to proceed here yet. The decision is largely between a potential (strong potential) in upfront development effort on a newer technology vs. how future proof you want the underlying technology stack to be for both applications.

As of today, there is no end-of-life for MVC5 or any of it's Microsoft provided dependencies. Microsoft has only stated that once end-of-life is announced, they will provide 12 months of support following the announcement.
Morgan Maguire, CEO
Anil and Derek,

Thank you both for your comments above. Although I appreciate the risks of adopting newer technology, I want to ensure that we are using the framework that will maximize the lifespan of the platform and leverage the performance opportunities available with newer technology. Therefore, let's proceed with building both applications in .NET CORE.

Also, the ISLG rebuild is going to be a much more difficult and elaborate project. Before that project begins, we can use the P3 prototype as a test case for .NET Core. If we run into serious problems with .NET Core during this project, we can revisit this issue before starting ISLG.

Anil, unless you have further concerns, could you please make the appropriate arrangements as we start to shift from the design to development phase in the P3 Prototype project.

Thanks,

Morgan 

 
Anil Vaghela

Hello Derek and Morgan,

Thanks for your responses.

We will proceed to setup .Net Core environment ready in My and Hiren's PC so that development can be started once the wire frame will be freeze.

Our next step would be SQL database designing for P3 prototype.
Morgan Maguire, CEO
Great. Thanks Anil.

Let us know if you need feedback on the proposed design for the SQL database.

Morgan
Anil Vaghela
Hello Morgan,

We require to install "NET Core Windows Server Hosting" on Carbon60 server (10.68.138.10) to host P3 prototype. We need to install this on the same server where ISLG is host.

Please suggest if I can send an email to Carbon 60 support team.
Derek Ethier, Industrial
Anil,

It should be pretty straightforward for Carbon60 to do. The existing Application Pools should have the .Net Framework versions specified. With this installed, the P3 application pool would need "No Managed Code" specified so it falls back to Kestrel to handle.

I don't believe it requires a reboot or should impact any existing services on the server, but we should include in the request that if that does become the case we'll need to schedule a maintenance window.
Morgan Maguire, CEO
Derek, thank you for clarifying the process for getting the new framework on the server.

Anil, please proceed with contact Carbon60. Please cc'd Derek, Juan, Ryan and myself, and that they can contact me about any account management issues.

Thanks,

Morgan