cake-contrib / Cake.EntityFramework

A set of Cake aliases for Entity Framework code first migrations.
https://cakebuild.net/extensions/cake-entityframework
MIT License
5 stars 5 forks source link

Switch to new csproj format and .NetStandard #39

Open gep13 opened 5 years ago

gep13 commented 5 years ago

@louisfischer I have just completed the work of updating the project as it currently stands to use the latest recommended version of Cake, 0.33.0.

It would be great to get this addin updated to use the latest .csproj format, and also to switch to using .NetStandard2.0. Is this something that you think you would have time to do, or is this something that you would be looking for help on?

louisfischer commented 5 years ago

@gep13 I was waiting for .net core 3 and EF 6.3 to go RTM in September. EF 6.3 will support .NET Standard 2.0

gep13 commented 5 years ago

@louisfischer ah, that makes sense. Thanks!

louisfischer commented 5 years ago

@gep13 I am talking a look at the code and it may not be portable to .Net Standard 2.0 (possibly .NET Standard 2.1). This addin uses AppDomain isolation and Configuration Files (web.config/app.config). AppDomains have been trimmed back quite a bit and only support a subset of the .NET Framework. There is a new concept in .NET Core 3.0 and .NET Standard 2.1 called AssemblyLoadContext that may work. I am not sure how this plugin is used outside of Windows Environment. Any new development that uses Entity Framework would use Entity Framework Core. I could possibly at least update the project format to the new csproj format and update the the target framework to 4.7.2. Do you think we should start there?

louisfischer commented 5 years ago

@gep13 Might be better off using the new ef6.exe and ef6.dll that comes with EF 6.3. This would essentially shell out to the command line instead of some "fancy" app domain magic. That would almost be like a complete rewrite of the plugin.

image

gep13 commented 5 years ago

@louisfischer hmm, interesting...

In all honesty, I am not sure what to do for the best here. This isn't an addin that I use, so I don't really have a stake in it from that perspective, I was just concerned about bringing the addin up to date with the latest recommendations around project format, and support for latest version of Cake etc.

If you feel that things would be easier going forward by switching to use ef6.exe, I will leave that decision up to you.

louisfischer commented 5 years ago

@gep13 @pascalberger Need some advice on this one. I am going to go ahead and use the new "ef6.exe" that microsoft suggests to use for migrations. One, it is cross platform now and it dramatically reduces the actual code needed to apply migrations. Two, it standardizes the way Cake can call out to a specific tool (developed and maintained by MS) instead of using custom code.

With that, i cannot decide if it is better to "Deprecate" this plugin and create a new one or change this code base entirely and retain the existing nuget Package Name. If we were to deprecate this plugin, can we make it read-only or archive it?

Any thoughts or Suggestions?

louisfischer commented 5 years ago

@gep13 @pascalberger I think what i am going to do is go ahead and Deprecate the package. Once that package is completed and deployed to nuget, i will go ahead and close it out according to the guidelines Cake Guidelines.

soroshsabz commented 3 years ago

@louisfischer Any update?

thanks