Announcing .NET Framework 4.6
blogs.msdn.com
blogs.msdn.com
Not really, as they have no story for Mono not to mention ARM NEON support.
Complaining about "hip substitute buzzwords" is very hip, though. Thumbs up.
That's one use, but the use of "story" upthread is a different common sense that is actually more like "solution" (and much more of a marketing term) than the requirements sense of "story" used in some development methodologies.
b) Why would Microsoft have a story for Mono? Mono isn't a Microsoft thing.
Switch.MS.Internal.DoNotApplyLayoutRoundingToMarginsAndBorderThickness=falseHasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
http://grepcode.com/file/repository.springsource.com/org.asp...
public boolean wellHasItThen/*?*/() {
return ohYesItHas;
}I'm unsure if I should laugh or cry.
But sure, maybe PreventApply... would've been better. Then again, PreventApply... sounds weird, and should probably be PreventApplying..., but, ehh, naming is hard.
Just speculating, but this might be a fail safe since bool's default to false in .NET.
Its about time.
I hope to one day be able to natively do C# on linux under a vs parity ide (the tools are really great).
Still, they haven't given up on their product-key nonsense and their unfortunate cozy relationship with govt-surveillance types which are incongruous with open platforms. There's progress left to be made before I will consider their products again.
I do know that the framework is stronger and more test proven but the traction this type of tools are earning is important.
Will the .net framework will conquer the heart of developers with the release of some of their projects as open source, and will create the best cross platform desktop development kit?
Or is it doomed to be a Windows only beutiful thing.
These days I've moved on, but .NET is far from a desktop-only thing. Particularly when you can make iOS apps with Xamarin, etc.
Exactly how I feel. I've been working professionally with C# professionally for over a year now doing a lot of backend stuff for websites and it's great. .NET shares a similar philosophy with Python in that it's a "batteries-included" language. Need a REST endpoint? I can have one up and running from scratch in under 5 minutes with WebApi. Inter-process communication? Let me create an MSMQ instance - done! The only downside is what you mentioned - whole loads of crap that come with the framework. I hate IIS for this reason (but love how easy it is to deploy web services). We're currently working on an HTML5 replacement for our current Silverlight stack (lol) and wanted to go with Node.js instead of IIS, but we really want C# on the backend and don't want to hack it. From our point of view, JavaScript is great for the front end but completely idiotic for the amount of work we do on the backend. Type safety and static compilation is essential for us.
http://blogs.msdn.com/b/dotnet/archive/2014/12/04/introducin...
Honestly I've found getting up and running with Mono and Kestrel really simple with the latest beta. I ran from Visual Studio without really doing anything and then switched to OSX and it worked perfectly. You still need to rely on some mono classes as of now for things that haven't been open sourced (Xml streams....) but even the mono implementations worked just fine.
In addition to Owin self-host, you might want to check out Edge.js, which lets you host .NET under Node: http://tjanczuk.github.io/edge/
If you want a C#+WPF type experience that's also open source and cross platform, check out Kotlin and JavaFX. JFX is the new third gen (post-Swing) GUI toolkit in Java and it's quite impressive. It's scene graph structured like WPF, has data binding, but also pays close attention to visuals: you can style it with a dialect of CSS, everything is 3D accelerated via D3D or OpenGL, you can do shader based effects on any part of the UI, etc. It has all the usual layout management and business components but also can do things like embedded h264 videos, 3D objects, and there's a tightly integrated embedded WebKit too if you need it.
Finally there's a tool that takes your app and spits out bundled/native packages for each platform, so the user doesn't ever have to know that the app was written in Java. No JRE or awful toolbars to install.
I've written a few apps this way and it's much more fun than writing a web app.
Agree fully. there are concepts that are fully mature in desktop applications, that the web has yet to come close.
WPF and JavaFX both have a mature reactive data binding framework so altering your model causes updates to the UI and vice-versa. JavaFX has an entire functional reactive framework in it so you can build lazy functional transforms over observable collections and the like. The fact that it's an API rather than a DSL makes it kind of ugly, I believe LINQ is a little similar but much more nicely integrated for the .NET world. But it's all there.
https://github.com/vinumeris/lighthouse/blob/lighthouse/mac-...
The catch is you need the platform to make packages for the platform. It can't make Mac DMGs from Windows, for instance. I have a Mac laptop with Parallels so I can make packages for all three major platforms.
To stay on the .NET topic, this is the closest the JVM world currently has to something like .NET Native, I guess, although of course, there is no native code involved .... it just looks that way to the end user. I guess when .NET matures as a cross platform solution they will need a similar tool, as other platforms don't have the runtime installed by default.
Essentially you still have to put your functions in a class, but you're allowed to call them without the class (if desired). Kind of like "free functions" in C.
I like C#, but it looks like the team is running out of ideas. Or, perhaps, they realized that the "everything must go in a class" mantra was a bad idea.
Regardless, this change is very handy. Even if "everything must go in a class" is a bad idea (I think it's fine), the end result of this change, from the library consumer's standpoint, is the same as having functions defined outside a class but within a namespace. It's a great pragmatic change that doesn't rock the boat much.
In line with that are the other mostly minor but time saving changes like simplified null coalescing.
public static string Truncate(string value, int length)
{
return value?.Substring(0, Math.Min(value.Length, length));
}
In previous versions this looks like: public static string Truncate(string value, int length)
{
return value != null ? value.Substring(0, Math.Min(value.Length, length)) : null;
}
Not a huge change, but a very handy one to have.At least in Java-land, it's considered bad style to use this for anything other than constants.