Reputation: 1085
I am quite interested about the recent .net developments, but I couldn't really follow everything in details. I'd like to know if it's now possible to embed the .net framework dlls directly in the application instead to ask the user to download the framework separately.
P.S.: for "recent .net developments", I meant the fact that it's all going open source, therefore I wonder if I can use the new open sourced version. If I got it correctly, I could even use the framework code directly, so the application shouldn't need to request the framework DLLs, should it?
Upvotes: 1
Views: 226
Reputation: 64229
What kind of application are we talking about? Desktop? Web Applications?
CoreFX is just a modular version of the .NET Framework modular, but it won't "link" (similar to C++ development) any assemblies to the main executable.
CoreFX will allow multiple side-by-side applications, so when you update one application to new modules other CoreFX applications won't be affected by it.
But (at least for now) CoreFX is a targeted for cloud and server applications so far and do not have the full feature of the .NET 4.6 framework, nor does it have or support GUI framework (WPF, WinForms).
So if you're aiming for Web-applications, you can use it soon (it's not released yet. As of the time of writing, it will be released in 3 weeks on 20th July 2015). If you want Mobile or Desktop Applications you have to stick to the full .NET 4.6/4.5 Framework and then your app will require the appropriate .NET Framework to be installed on your PC before the application can be used.
i.e. you won't be able to use EntityFramework 6.x with CoreFx, as it depends on the full .NET framework implementation and EF 7.x do not support all Db providers yet and do not have all features of 6.x neither.
This won't change anytime soon. And if you use it, be aware of the limitations.
Check out this issue of corefx issue tracker addressing your exact question:
https://github.com/dotnet/corefx/issues/165
Will you be able to create desktop programs in VS2015 that targets .NETCore 5 or .NETFramework 4.6 (they are separate correct?). Right now in VS2013 it seems you can only target .NETCore when creating windows store apps. I cannot seem to target .NETCore when creating desktop applications.
.NET Core is currently focused on server-side scenarios, no GUI technologies like WinForms/WPF etc. .NET Framework 4.6 on the other hand contains everything, so you can create Desktop apps with it.
Will .NETCore 5 need a runtime installation for .NETCore programs to work on the target computer (whether it would be windows, mac or linux), or will I be able to include the runtime as part of the program?
.NET Core can be deployed alongside your application, so it doesn't need a runtime installed.
Which brings me to another question, if a installation is required for .NETCore runtime, will the .net Framework 4.6 installer install .NETCore 5 with it (limited to Windows only)?
See 2.
Upvotes: 1
Reputation: 73492
I'd like to know if it's now possible to embed the .net framework dlls directly in the application instead to ask the user to download the framework separately.
Yes there is. .Net native makes it possible. You can run a .net application without .net installed.
.Net native achieves this by pre-compiling the application into native code.
Unfortunately, it works only for Windows store apps as of now. We may expect the desktop application support in near future.
Refer this and this blog post posted last year for more details.
Upvotes: 2
Reputation: 5550
Not really. There is no update in the .NET framework
that allows it to be embedded directly in a single executable.
However, every modern PC running Windows has the .NET framework. Even Vista comes with .NET 3 installed. And the .NET is updated via Windows Update.
The only OS you need to worry about not having the .NET is XP, which is long unsupported and gone.
Upvotes: 1