Last post Jul 16, 2019 04:28 PM by arunairs
Jul 13, 2019 05:00 PM|arunairs|LINK
What should one consider when porting apps to .NET core 3.0 from .NET 4.5 in terms of App Domains, TCP/IP, , SSL (certificates), Linux, GAC,, etc.
Jul 14, 2019 08:00 AM|maherjendoubi|LINK
Which kind of apps are you porting?
Jul 14, 2019 02:09 PM|arunairs|LINK
Both desktop and web based, that use almost all features like Winforms, WPF, WCF, RESTful Apps, ASP.NET MVC, REST based services using WEB API , Windows Services etc. While have found counterparts to many of these in .NET Core 3.0, my concerns are what
happens to things like app domains, active directory, registry access etc in .NET Core 3.0,
App Domains for example are used for code
isolation, what is its counterpart in .NET Core?
Another are of concern are with security. Take the case of X509 certificates. How will certificates be handled in code ( I currently have code that uses a CA server that downloads them, installs them, revokes
them, renews them etc.) in .NET 4.x? How will these work under .NET Core running on a Linux box? I (certificates are stored differently in Windows and other OSes, under Linux and mac OS)?. How will deploying libraries
to GAC work in .NET Core?
I was hoping to find a link or a comprehensive document that provides porting guidelines of the features in .NET Framework, to .NET Core 3.0 and later to .NET 5. I have not been able to find a comprehensive document from Microsoft that address
Jul 14, 2019 07:25 PM|bruce (sqlwork.com)|LINK
Core 3.0 is in preview, and its focus is on "windows" desktop application support.
When you develop in .net core, you need to decide if you need cross platform support, or writing for windows only desktop app using winforms, or writing an OS/x desktop only app using visual studio for the mac and Xcode story designer.
Some old .net technologies like the GAC and App Domain support are not moving forward, and there is no planned support. DLL unload is planned for a future release. core supports a shared folder where know runtimes can be installed, but there is no notion
of a GAC.
You need to review each techonogly you use, to see what its support in Core 3.0 is. For example, while there is WCF package for core, its not supported by the MS nor is a direction they currently plan on supporting.
winforms and WPF will be windows only, and as compatible as possible.
a technology like X509 will have cross platform api's, but not necessarily cross platform tools. a CA server that updates computers with certificates is outside the .net core scope at this time. core just has the api's to load and use certificates.
for AD, ntlm is windows only, while kerberos is cross platform. the AD ldap api is cross platform, and there is a new cross platform ad directory service api. as core can p-invoke any windows api, you can also create a wrapper for most windows api services.
many of the designer tools will not be available for core coding, and instead be manual or a command line tools.
MVC and Webapi have the most support, and visual studio has utilities to identifies areas that will need rework (any access to the IIS/asp.net pipeline, webforms, global.asx, etc)
you will also need to look at core support for your nuget packages. MS estimates some 70% could be ported to core easily, but some may never be ported. If your nuget package does not have current update activity in GitHub, I'd look at replacing it, or doing
your own fork.
you are more likely to find information by googling each technology individually. I would expect more porting help to come after 3.0/3.1 release. core 3.1 is the LTS release due in sep/oct 2019. core 3.0/3.1 is the release where you can (however painful)
build all your apps with core, 5.0+ is where you are expected to write new apps in core.
Jul 14, 2019 07:29 PM|maherjendoubi|LINK
For X509 certificates, in stead of using these classes
you have to use these classes
How will deploying libraries to GAC work in .NET Core?
<div class="answercell post-layout--right"> <div class="post-text" itemprop="text">
No there's not, not in the way you think of the GAC. Core apps are meant to be isolated from each other, so you can patch one without fear of affecting the others. You ship all the packages you need with the app.
For porting Desktop apps to .NET Core, please refer to these blog posts:
Jul 16, 2019 09:47 AM|Sherry Chen|LINK
Hi arunairs ,
.NET 3.0 now supports WPF and Windows Forms. .NET Core 3.0 also supports cross development between UWP, WPF, and Windows Forms. This provides developers flexibility to bring modern interfaces of UWP into Windows Forms and WPF.
If you’re building a new app and your company has approved it, .NET Core is the way to go. .NET Core will continue to get better and better.
.NET Core is better suited for cross-platform needs. .NET Core apps are supported on Windows, Linux, and macOS. Microsoft’s popular open source code editor, Visual Studio Code, is supported on Windows, Linux and macOS. VS Code supports modern needs of code
editors including IntelliSense and debugging. Most third-party editors, such as Sublime, Emacs, and VI, work with .NET Core.
Microservices architecture is supported in .NET Core, which allows cross platform services work with .NET Core including services developed with .NET Framework, Java, Ruby, or others.
For porting the code from .NET Framework to .NET Core and the comparison between .Net framework and .Net Core , you could take a look at the following links :
Best Regards ,
Jul 16, 2019 04:28 PM|arunairs|LINK
Thank you for the detailed post, and yes I am currently looking at each individual technology and making an assessment.