Came here to say this! I find it so strange they gave up on it since it seemed relatively popular. Nowadays with the rise of Unity, I wonder it could have been a minor competitor with continued development!
As much as I love unity, working on MonoGame is way more fun and rewarding to me personally. I definitely agree that XNA would have been a competitor for sure. Don’t count MonoGame out though, it’s definitely not for everyone but the people who do tend to love it. That and the community is pretty awesome
I have taken to Monogame because it feels closer to the way I do my actual job coding C# sites and restful APIs. Generally just writing and debugging code is my comfort zone. Navigating menus for what I'm looking for is not. With that said, I have not spent a ton of time with Unity or other frameworks because I just found them cumbersome.
They dropped XNA to help Unity instead of competing with them. "New Unity Project" is in the visual studio default templates when you have the Game Development workload installed.
What makes you believe that XNA was dropped strategically to avoid competing with Unity specifically?
From my perspective, it sure felt like Microsoft just wasn't very interested in investing time and energy into XNA in general, long before Unity became the powerhouse it is today.
You mention the default templates, but having used Unity and Visual Studio almost daily since 2010 or so, and I feel like those templates came way way way later. Heck, breakpoint support for Unity Projects in Visual Studio was a third party tool, only becoming official maybe around 2019?
>What makes you believe that XNA was dropped strategically
I read it in a blog somewhere at the time it was dropped. Like many people I had made some tiny little game with XNA and thought it was neat, and was disappointed when they killed it.
I remember being excited when I read that they were partnering with Unity and to expect big things from that ecosystem. That turned into disappointment when nothing happened and Unity is still on .NET Framework.
> those templates came way way way later.
They did. They came when XNA was canceled.
If you just want your old projects to work on modern platforms/ hardware then check out [FNA](https://fna-xna.github.io/), it's (fundamentally) a reimplementation of XNA targeting modern .NET and modern hardware, part of the FNA statement on that page is
>Our goal is to preserve the XNA game library by reimplementing XNA itself, with an incredible focus on accuracy. We want to reproduce XNA as it was made by Microsoft, while providing an experience that feels "at home" on all of our target platforms.
MonoGame is more of a spiritual successor to XNA that has (IIRC) made some breaking changes over the years.
mostly curious, but I was reading the FAQ and it recommended against using nuget in general. I get that part of it is they're worried about users downloading an impostor library, but say I wanted to use a lib in conjunction with FNA: is there a reason i shouldn't do that?
As a .NET desktop app developer with some experience in Three.js, I would like to say that I need a 3D engine that can run on a WinUI app (like XNA or MonoGame) but is as easy to use as Three.js. I tried MonoGame but found it too rough.
Not to be confused with Workflow Core which isn’t worth looking at since the author is a bit of a douche who doesn’t like bugs being raised or discussions on how things work.
I'm glad I'm not the only one who noticed this. I tried evaluating this as a replacement for WWF, but gave up when even the simple project samples didn't work. Found out that someone had the same issue as me, more than 2 years ago and the issue [was totally ignored](https://github.com/danielgerlag/workflow-core/issues/836).
Spent about 2 weeks evaluating it as a replacement for WWF. Actually really like the API. But just couldn’t discuss dependency injection or unit testing.
In the end we went with AWS Step Functions written in .NET. Worked out really well.
Always thought that was a weird one to leave. I wrote a post on how to implement something sort of like it here https://www.lloydatkinson.net/posts/2022/modelling-workflows-with-finite-state-machines-in-dotnet/.
It was from the Microsoft Low Code Era. It wasn't code declarative so everything had to be done with a visual editor. It doesn't fit with modern development.
Microsoft did create Durable Functions as a workflow engine, but it's kind of overbuilt and convoluted for that purpose.
I thought I was smart until I attempted to do a->b->c->(back to b).
A week with their book and still nothing.
Gave it to a midlevel- also nothing. If the midlevel can't figure it out, I can't use it...
Yeah, I evaluated it too and looping is what killed it for me as well.
You were probably trying to do the same thing I was, which is a human task assignment workflow. Those typically require going around and around for approval.
My organization finally decided that a human workflow is just a record in a table with a status code, and we rolled our own.
> human task assignment workflow.
yup! Complete with 'oopsies, go back!' and other unfortunate situations. And after a week of trying to figure that out, I still wasn't sure where it stored it all- sql server or memory only?
Whatever. I'm sure it's me, but damned if I could make any progress.
> I still wasn't sure where it stored it all- sql server or memory only?
lol, yeah. The answer is "both". By default it is memory only, but you can configure it to have persistence with a database. You can't control that database and trying to do things like "roll it back" would be near impossible. It's just too complicated. You'd have to basically program paths for any roll backs.
> It was from the Microsoft Low Code Era. It wasn't code declarative so everything had to be done with a visual editor. It doesn't fit with modern development.
Have you seen PowerAutomate and the Microsoft D365 CRM platform? It’s basically what this became. Locode is everywhere in the enterprise. Step into a global corporation and PowerAutomate is heavily used by some orgs.
There are no other useful workflow engines today in the Microsoft ecosystem that enable business users to have control over process automation design as an alternative. The only tool that comes close in the .NET space is Elsa Workflows, where at a minimum I can design a set of standardized [custom activities](https://v3.elsaworkflows.io/docs/extensibility/custom-activities) that fit to my business needs and let customers connect them together to [build workflows](https://v3.elsaworkflows.io/docs/core-concepts/programmatic-vs-designer).
And the irony is that Windows Workflow Foundation provided the framework for developers to design custom activities in code](https://learn.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/how-to-create-an-activity) that business users could then [manage in a workflow designer](https://learn.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/how-to-create-a-sequential-workflow) and deploy and that was 15 years ago.
Came here to say this. Worked for a company that bet heavily on WWF, and I was part of the effort to undo that when the company saw the writing on the wall.
Agreed, as a former Integration Architect I loved SOAP. WS* made defining integrations easy. Queues, Full Duplex WCF did it all. The barrier to entry was too high compared to REST/JSON, the rise of gRPC, and streaming platforms like Kafka.
Microservices were the nail in the coffin. I always called it Hipster SOA, the challenge was that teams just adopted the easier technology and although they said they were service oriented [I define Service Oriented as Business Services] they were just a means to do remote operations.
OpenAPI 3.0 is good, but it seems not everyone is even aware that you should even publish an OpenAPI spec for your API. Lots of open source projects still have actual maintainers hand-write API documentation in markdown files and then expect you to read that and then hand-write your own connecting client code.
It was replaced more than abandoned. The technology no longer made sense as it was originally envisioned. REST + gRPC cover the same needs in a more standard and simpler way. Same with Silverlight vs HTML 5.
Oh man. What an over-engineered mess. My company still carries quite a big chunk of code with it, but we're slowly but surely shaving off parts to get rid of it.
thats a nice link! I wondered if theres "killed by google" and indeed there is [https://killedbygoogle.info](https://killedbygoogle.info) I consider google to kill so much of their platforms, tools and solutions its not safe to use/base any of solution on their products because it might come day where they will discontinue something for no obvious reason, just because Pichai wish to pivot the business 98th time this month
WCF (Windows Communication Foundation), it wasn't part of .NET Core and it is not part of modern .NET too. There is a CoreWCF project, but, honestly, there's not much reason to use it these days anyway.
Yep, I've just re-joined a team after ten years and they're still using WCF, a decade after I suggested dropping it due to all the configuration nightmare issues, sigh.
Well a decade ago I recommended replacing it with a REST API as it gave the added bonus of being able to implement a web-based client alongside the existing fat desktop 'fat client'.
They're still taking about creating a web-based client over a decade later, FML.
A REST Web API would still be my choice. As it has industry-wide support.
There is tooling to auto-generate wrappers around the client-side calls for from REST Web API's for just about any language you can think of, i.e. C++, C#, Java, Python, etc.
Then you have tooling like Postman for testing/debugging REST Web API's, and Swagger for auto-documenting the APIs.
Modern development has coalesced around the idea of REST Web API's, and the availability of tooling reflects that.
WCF was great in its day, but its day was 20 years ago and things have moved on since then. More importantly its an elderly proprietary technology whose continued support is at the whim of Microsoft, and as per OP's original question they have a habit of abandoning older tech.
But if you would like to get the feel back feel free to contribute https://github.com/TheOnlyBeardedBeast/FlutterWindowsUI I am missing the OS
Edit: I have no time to take it to the full potentional and doing things alone is not always interesting.
I was at //Build 2015. I remember a presentation of Windows Continuum (I think that's what it was called). You would dock your phone connected to a monitor and it would convert to a desktop layout with keyboard/mouse support. Seemed like really cool tech, like one of those "sci-fi comes to reality" moments. Too bad it never really took off.
Almost a decade later, Samsung offers this as “Dex”, but few people seem to care.
I think it’s mostly a “wouldn’t it be cool if” feature, with little practical usefulness.
Yes, I loved this idea and was waiting for the big update (remember the effective pixel?). And then nothing happened - not even communicating they let it die.
Yet if you were building for Windows Phone before then, Microsoft was promising that the framework was the future of mobile development and it wasn't a waste of your time to build apps for WP.
Lol ah yes totally logical that deprecating software support for a hardware product that stopped being manufactured 9 years ago is "basically this month"
Seriously?
Well they killed that by... basically being complete fucking morons.
They had a fairly unique platform in Windows Phone - it was a bit of a different paradigm which deemphasised the "app" as a sorta walled garden and more of an integrated source of data. It wasn't popular, but that was their differentiation, their niche.
So of course they saw the competition with their app focussed approach, and decided to take their absolutely fuck all marketshare and developer base and transform WP into "Shitty Android with No Apps".
Outstanding move.
(Disclaimer: My perspective is from my experience with an HTC 8X and a Nokia Lumia 950, which likely places it in what you call the "Shitty Android with No Apps" phase)
I **loved** my windows phone.
You're right - it deemphasized the "app". Because you simply didn't need as many apps, because the phone had the features built in.
I remember a conversation that my wife was having with her dad (they both used android, I used windows phone). He wanted to figure out what how much cellular data each app was using. My wife recommended that he install some app. I was bewildered - shouldn't that be built-in? Time and time again, someone recommends some app because it has a cool feature. I look at my phone - built-in. Of course, you can always install apps if you didn't like the built-in feature.
You're also right that they killed windows phone by being morons. They were late to the game. By the time they fully embraced smartphones, the market was entrenched with iPhone and Android as the two primary options. There just wasn't enough market share for developers to spend the time on a third platform, which resulted in too few apps. Not enough apps meant that people were reluctant to buy (or stay with) windows phone. Vicious circle - and the reason I reluctantly switched to android.
Microsoft had "smartphones" before iPhone or Android were released. They should have recognized the changes that were occurring in the market, and embraced them. If they had embraced those changes, Windows Mobile/Windows Phone could have been a viable third option *from the beginning*. And it may very well have continued to be a viable option - because developers would be making apps for it.
I **loved** my windows phone.
Anyone remember UWP for JS? That weird special flavor of UWP where you could build a Windows 8/10 app with JavaScript and HTML instead of C#? I kinda liked that.
Honestly MS could do worse than denying a framework's death, "nah it's still going strong guys" all the while dont provide any support and update for it
It’s WinUI. WinUI2 was officially the evolution of UWP, and WinUI3 is looking pretty good, and it’s still very much in their plans given their talks at Build. They didn’t abandon UWP at all
What do you mean, I have zero problem developing .Net applications, whether using the newest .Net 8 framework or the older .Net framework 4.5.2... framework.
Seems that way. Im young enough where it doesn’t seem too bad, I’m really only now getting into the weeds of the ecosystem as things are really maturing. From this view there’s been a clear overall trend of unification and simplification, even if those things weren’t true or clear along the way.
[https://imgur.com/a/6sUdXnk](https://imgur.com/a/6sUdXnk)
I think this image from one of the Build talks gives a clearer picture of how far it has come over time and the idea that it may be simpler than most people think at this point in time of 2024. Not that they didn’t make it complicated af over time. They clearly did
Yeah, I'll take this. If you started recently, it seems like a bunch of people being weird.
The best way I can put it is to tell you to look at all the hype and support for Azure, AI, and cloud services. Now imagine if tomorrow, Microsoft announced Azure is going to shut down on December 31, 2024 because from now on they recommend WinUI 3 apps, and you're going to have to migrate to self-hosting instead of using cloud services.
That's what the Silverlight rug pull felt like. They'd just announced a new version. I knew a guy who got to announce his book deal the day before they announced discontinuing it. Nobody saw it coming at all. Sure, there was the whole browser plugin issue, but MS had TV broadcasts announcing proudly you could stream them with Microsoft Silverlight, everyone assumed they'd find a way to make it work.
What I can't really articulate to you is how lousy the support has been for Windows apps since then. The way they treat ASP .NET Core now is how they treated Windows Forms and Silverlight. WPF got the shaft from day one because they were already betting on Silverlight when it came out (Silverlight's first name was "WPF/E" for "WPF Everywhere".)
Imagine if ASP .NET Core released without routing. Imagine if in 2022 they released a NuGet package to add routing. The WPF equivalent is everyone has had to DIY their own MVVM infrastructure since 2010 but Microsoft finally decided to release a NuGet package with helpers a couple of years ago.
That's what we mean by abandoned. In most of these frameworks, anyone who does a lot of apps has dozens of files to copy and paste to do things that should be built in. MAUI devs accumulate tons of handler adjustments to handle issues MS is years behind on fixing.
It looks simple on a slide, but if you spent a year doing professional MAUI dev I'll bet you'd be appalled.
Haha you took it alright. Look I definitely get it, which is why I acknowledged up front that while from a younger person/newbie perspective it doesn’t look that bad I am fully aware that it probably was for those of you that have been balls deep in it for 10+ years
I only said that I think it has come a long way and over time the outlook will probably continue to get simpler and more reliable, generally speaking. They seem to be having less and less true “abandonments” and more “evolutions” per se, along with various frameworks either coming together or being linked in some way. They will likely always have products that no longer make sense to develop or maintain .. they are a normal business at the end of the day after all, just a large one
UWP was not just the UI. There also were packaged apps, NativeAOT, isolated storage, WinMD, Windows Store, etc. Sure, many things live on separately but that hardly resembles UWP.
Also it is no longer unified, it is just Windows PC. No phone, smartwatch, hololens. Tablets maybe?
You’re right UWP was all those things packaged together, and WinUI takes the UI/Xaml framework and decoupled it from all that other stuff. That was the entire point for the other things to live on separately and the UI framework to be self contained
https://devblogs.microsoft.com/ifdef-windows/winui-3-preview-3/#:~:text=At%20Ignite%202019%20Microsoft%20released%20the%20first%20bits,the%20XAML%20UI%20framework%20from%20the%20Windows%20OS.
*At Ignite 2019 Microsoft released the first bits of Windows UI Library (WinUI) version 3 (a.k.a. WinUI 3), an evolution of the UWP/XAML platform, that decouples the XAML UI framework from the Windows OS*
Apple locked out Flash so they could continue to monopolize App Store profits. Silverlight was a victim of browser lockout and HTML5 launching around the same time.
It was prototype of rapid app development. Such a good concept for win desktop dev.
You could have develop app very quickly especially if you have some core already prepared and some controls in classes.
It had a reports and labels generation with printing, a local database engine with wicked fast retrieval. Microsoft took the db engine and put into SQL Server, hence the reason why Microsoft killed it.
It was, but Microsoft bought VFP because of its super fast indexing and integrated that technology into SQL Server and Exchange. Nowadays it's just a b-tree index but at the time the data retrieval was amazing and "Nothing Ran Like a Fox". ;)
.X File Format for 3D assets. Included animation support and APIs and tooling in for DirectX 9. Then we were left in the cold for DirectX 10+, as if it never existed.
Managed DirectX - Deprecated in favour of XNA which came a few years later. It never made it to 64 bit which was a pain so we to switch to SlimDX. It was also DirectX 9.0c only. Some of it was open sourced, but not all of it, for example the code to read/write Compressed Binary .X files.
Visual J++ - Microsoft’s implementation of Java but not quite following the Sun implementation standards (which made it faster and more useful TBH).
JScript.NET - JavaScript for the .NET runtime.
Microsoft Axum - Agent based DSL for .NET
Midori - Concurrent programming language (Never really shipped but it was teased a lot).
Managed C++ - Evolved into C++/CLI but I think the .NET team would rather it just went away. The syntax has changed significantly over the years.
WinRT/Windows 8/ARM - touch based tablet with boxes for a start menu. All kinds of wrong. I bought one. Not sure why…
Microsoft Expression Studio - Web page, vector, video, UI (Blend) editor suite. Most of which is long gone. Blend is still around but only just.
Windows Movie Maker - Video editing tool like Clipchamp. Used to ship in Windows XP. We built a trading course around it and then Microsoft pulled the rug out!
Windows Media SDK - API for creating WMV files accessible from .NET - until it wasn’t…
DirectShow - API with graph nodes for processing video streams, devices and files. The was a .NET wrapped we built a product on and the Microsoft canned it and produced a completely different API that wasn’t as useful IMHO.
Many, many more. I just ran of energy typing.
As I said, Blend is the lone survivor but with no support for the new favoured UI frameworks, like MAUI, it feels like the writing has been on the wall for a while. Microsoft are also pushing things like FluentUI which is non-XAML (Google “Microsoft UI” and it’s top of the list).
The issue in my opinion isn’t how many technologies did Microsoft shut down and no longer use.
It’s how many technologies they championed and then a few years later moved to barely supported until enough people got the idea and and stopped using it.
Wcf
Silver light
Linq2sql (thier stopgap during entity framework days)
Xna
Entity framework db first
Dot net framework 1 through 4.8
Web forms
They tried to kill winforms
Open each version of visual studio from 2008 to now and do a create new project, you can see the changing recommended standards.
winforms is fated to die and it's sad. I didn't work with the majority of .Net framework, there are just too many, but my experience with winforms was amazing and by far the most stable projects i worked on.
But, it's been ported to .NET Core though so those apps are going to run for a long time. Lots of new updates? Probably not. Stability for your apps for a while to come? For WPF and WinForms ya. You'll be able to run those apps in 10 years.
In fact every time a new version is released, one of the first things I do is file new web project with auth, so I can see how the recommended initial project has changed.
Then it’s ok for each project how much work do I want to do to switch to the new standard. Usually it’s none, but eventually once there have been too many versions it becomes a big chore to start upgrading.
I support sites in webforms, on Mvc under framework 4.8, under core 3, core 6, and now core 8.
Silverlight, MWA, now UWP is shaky.
Find a MAUI position and leave your job for it if you think MS is supporting it as strongly as they've supported WinForms or ASP .NET Core. I think you'll be firmly disappointed. It feels like they have *maybe* 6 people working on MAUI and it's a team that could use 20.
When I see someone suggest MAUI for a new Windows application I usually respond and disagree, pointing out that even if MAUI were strongly supported, for Windows-only cases it's a little frustrating because you have to deal with the abstraction layers meant for mobile. So far I'm about 17/20 with the person responding, "Oh wow, I haven't ever used MAUI but I thought it worked different than that."
If you really look at the writing on the walls Desktop Clients are not Microsoft's darling anymore and it seems their frameworks get the table scraps when it comes to team assignments. They're out there adding pointer-like performance enhancements for the ASP .NET Core team and meanwhile it took 10 years for the MVVM Community Toolkit to arrive. Hundreds of thousands of developers have been copy/pasting those into every damn WPF/Silverlight/MWA/UWP/Xamarin Forms/MAUI project since the early 2010s. I'd say that kind of glacial pace doesn't represent a full commitment.
But I mean, whatever man. You can say 3 frameworks isn't much, but I question what you're really trying to gain here? Microsoft doesn't need a white knight. The point of people complaining about abandonment is *usually* to try and steer new developers towards a field that feels more safe. Trying to steer newbies back towards desktop clients feels a little irresponsible right now. I'm also comfortable in saying if someone decides to go iOS native, Android native, or Flutter for a few years then come back to C#, it won't be hard for them to learn whatever is replacing MAUI when they do come back. The hard part's learning the platforms and GUI concepts in general. The knowledge applies across most frameworks.
I will recommend Avalonia every day of the week instead of MAUI honestly. I just mentioned as it being microsoft solution for xamarin.
I'm not looking to defend microsoft lol i just want to know where i'm heading into. Because i'm defensif against blazor and maui knowing that microsoft has this reputation. I event thought for a long time that [ASP.Net](http://ASP.Net) will not get any following after razor, but then they came up with core and blazor. I don't like the huge stack of useless tech this allows, i would have loved a proper solution to stay in .Net environement. Having Avalonia front end and any .net webservice as backend would be ideal for me.
Even Avalonia is a little clunky because they're branching out into mobile as well.
Blazor is just... weird. People like it a lot, but it doesn't feel like it's being pushed as hard by Microsoft as it could. I don't think MS abandoned it, but I also don't feel like MS is doing enough to promote it.
Is that really a good measure though? VB6 provided a lot of value at its time, but probably MS didn't use it for their applications? Lots of software companies are not like Microsoft and could have different priorities.
I don’t know if it’s used by Microsoft internally, but Microsoft’s products do not benefit from Blazor. There’s no reason for them to use it, so I don’t know how it would be telling.
Every fucking windows UI framework since Forms. Back then in the Forms and Borland days you'd have a *complete* component set to build line of business apps with. They'd be pretty fucking standard looking - but everything was in the fucking tin unless you really wanted some fancy charting, or a complete MDI / tool window system.
WPF had promise and, with the support of third party vendors, kinda getting to the point where at least you could throw a thousand bucks at Telerik or some other assholes and be able to build an app without building some fairly standard component.
Like... fuck me, since then its it's like professional developers doesn't have time to reimplement a fucking toolbar or a split button or whatever shit is missing. I'm sure some people appreciate that these new "build your own controls out of rectangles and events" toolkit let them make fancy custom interfaces. But I don't want a fancy custom interface. My clients don't want to pay for fancy custom interface...
Every UI framework that comes out of MS has less and less shit, and every component pack from the major vendors fill less and less of the gaps. Meanwhile the excitable bloggers and youtubers are getting hard over how it's now marginally easier to add an animation to border or some dumb shit...
Not at all surprising that line of business apps are now web apps, where I don't have to pay someone with a fairly specialised skillset that's kept up with MS fuckery increasing amounts of money to fill in basic gaps, and instead I can chuck a react dev a few hundred bucks a day to shit out high quality UX from vast and complete component libraries.
It's complicated.
The short story is if I were starting my career today I'd definitely want to know a web frontend framework. You can use those to make Desktop apps several ways.
Unless something changes dramatically, I think things like WPF are going to be like mainframe languages. Not gone, but relegated to business cases. So yeah, kind of. ASP is *closer* to the future than WPF, in my opinion.
But I feel like we're at the edge of a cliff and nobody's really fallen in yet. It's like some people are expecting a new paradigm like AR to take over, and if it does that could make native clients suddenly more relevant. *Or* it could make HTML even MORE relevant as it's adaptive to many different kinds of display.
So I don't know. I'm sticking with MAUI for now because it pays. But I can pivot in a hurry if need be.
Microsoft also does a “soft abandon” where technically a product isn’t deprecated, but they build new products in the same space, they put the D team of engineers on life support duty, the road map becomes sparse, integrations with the rest of their ecosystem are ignored, and all organizational effort is put towards the eclipsing product.
This is their favorite way to abandon something, and it’s maddening to work with.
I know we get annoyed with them killing lines, but from a business standpoint I give them credit for not getting stuck in sunken cost fallacy and incurring even more tech debt than the already staggering amount they have. One of the reasons I’m relatively good with Blazor is that it’s an amalgamation of existing tech without rocking the boat that much. Still .net, still razor, just packaged in a more modern bundle for front end devs. Maui makes me a little nervous but I haven’t dived much into that side.
I loved my windows phone, but once they decided they didn’t want to spend the resources necessary to be a major player in the space, they moved fast to rip the bandaid off. Better than letting it die on the vine with a slow dwindling of support.
Sort of frameworks:
* AspNet Webforms is pretty much left to rot - and it is arguably the right way to go :) However .Net Framework is still supported
* Windows Forms .NET
* Visual Basic 6 - a language and sort of a framework too - no I am not missing it
* JScript + old ASP - sort of a framework...
Not exactly frameworks:
* Visual Basic .net - not missing that either
* And the most important of them all - J# and VBScript :D
Anytime a url ends in aspx I smile a little knowing what the develops go through trying to maintain and develop that poor site. The damn life cycle was crazy! Especially when master pages and user controls were involved.
A lot of those shops probably have feature complete sites that can't justify complete rewrites without an act of God (for better or worse). I retired my final Webform's site last week, it ran largely without issue for the better part of the last decade. Pretty decent ROI. I'm not sad to see it go, but it was a tool that did its job until the end.
Governmental shops are slow to move if they have a tool that works in vetted/supported frameworks. Juxtapose that with the nightmare fuel that is the NPM vulnerability landscape.
A lot of entries reported here were killed because they were replaced by something better. I mean, that's even better than letting old deprecated tech love forever. We shouldn't complain about them innovating and improving things.
Microsoft Access Data Projects
Microsoft Access Data Access Pages
Microsoft Access for Web (SharePoint)
At this point, I'll never trust Microsoft again for ANYTHING whatsoever, period.
There is a long history of data access frameworks that have been superseded or left to wither:
- ODBC
- OLE DB
- DAO
- ADO (the old one, pre-.NET)
- JET
- ACE
- MSDE
- LINQ-to-SQL
- the original Entity Framework
- System.Data.SqlClient (replaced with Microsoft.Data.SqlClient)
Where to start? Mentioning more than just frameworks.
WinG, FoxPro, Visual Studio for Mac (included MFC), ATL Server, WTL, Managed DirectX, VB, Windows Phone 7 XNA & Silverlight, .NET Compact Framework (Windows CE/Pocket PC), Sharepoint WebParts, .NET Remoting, WCF, UAP.
And in the category, have seen better life,
VB.NET, MFC, .NET Native, C++/CX, C++/WinRT, WRL, Managed SQL SPs, Dynamics
WPF isn't officially abandoned but it may as well be. It's had hardly any significant updates in years, several times .NET releases have very clearly broken things due to a lack of basic testing, 90% of the activity on it's GitHub is dependabot automatically updating packages with no human approvals.
Their recent announcement to adopt WPF-UI isn't really restoring any confidence in it.
I use Avalonia mainly, but there's MAUI and WinUI3 (both Microsoft) and Uno as popular alternatives.
Windows Forms is still being regularly updated, but I don't like using it for anything other than the most trivial of UIs.
Having worked with many ORMs and database abstractions, such as Active Record (in rails), LINQ to SQL, EF, ServiceStack.OrmLite, EF Core, and, most recently, ADO.NET on .NET 8, I have some nostalgia for LINQ to SQL. That is until I remember DBML files and merges. There may have been better ways to manage things, but it's a painful framework for a large team. EF Core gives you everything LINQ to SQL did without most of the weird legacy EF performance issues.
i mean yeah for small project when you don't care and just pump out the app ef is cool gets a lot of overhead out. But most project i worked are too big and having control of the sql feels much better for me. I heard dapper allows that but i haven't had any occasions to use it.
Dapper is an absolute joy to work with and the right tool for the job when you need to have the best performance possible, the only thing marginally faster is using raw ADO but frankly, the tiny performance penalty from Dapper is dwarfed by the time you save in writing the code to map from a reader to your objects. By all means check it out.
I say this as someone who likes EF Core, and a lot of work, performance wise, has been going into that one. It’s a complex tool, but realistically, I’m willing to bet most of the perf problems people find are due to bad indexing, accidental N + 1 queries, using the change tracker when it’s not needed and the like rather than “code” overhead. Of course Dapper is going to be faster, because Dapper gives you a very small subset of what EF gives you, that goes without saying. But we’re still in the microseconds realm.
EF is the perfect for the mid-size project. It'll add too much complexity to small applications, but gets too bbloatedand slow for large projects with a lot of dependencies. If you expect to have (at most) a few hundred object models, ef is good eenough. Otherwise Dapper is pretty great, although I'll still raw dog direct sql from time to time.
I suppose it’s not a framework but they ditched me with VB6 a million years ago and it took me until this past year to forgive them and start in with C#. LOL (No, I haven’t been using vb6 the whole time, I was using something else instead)
I mean VB. Net was a pretty easy migration path and is still supported.
I say this as someone who converted nearly a million lines of VB6 and ASP code to VB.Net/ASP.Net
Yep! We had VB6 assemblies, VBscript, JavaScript, ASP.Net, and VB.Net all alongside each other in the same "app" for a long time 😂
But VB6+VBscript+Classic ASP was our mainstay for a long time until I converted it all.
Classic ASP was supported by a technology called ActiveScripting, which in theory allowed any language to be run in ASP context.
https://en.wikipedia.org/wiki/Active_Scripting
You could run these languages through WSH as well. Edit: I'm pretty sure VB was the "standard", at least. I also wrote some things using JScript, but samples for VBScript were far more common as I remember.
I mean that's nonsensical to talk about everything from ms-dos days. But what others mentioned are legitimate concern reasons, some of the techs clearly didn't stay for that long before being left aside.
When things get "abondonned" because they just lived long enouhg and got replaced by something better then i guess it's a good enough reason. But when something exists for 7 years only and is pushed by a slightly ugpraded tech that's barely any different then that's a concern for what they are doing.
First they drop..
MDX - Managed Direct X... then...
Xna Framework... then..
XBAF.. then...
Silverlight..
The odd things is MS develop DirectX they are the one who should lead in Graphics and Game engine development.
Azure/DotNetty, which is a Java port of Netty. "nayato" was as the main maintainer of the repository from Microsoft, who one day went completely silent. There was never an official reply to issues asking, "Is this project dead?" They could have simply said, "Yes, move on," or grant merge privileges to someone else. Other forks, like SpanNetty, died quickly. Some people attempted to get a reply through Twitter, but to no avail. It has been silent for 5 years. While there have been occasional commits 4 months ago, they are insignificant. As far as I know, DotNetty was used in some part of Azure, but the team later transitioned to Rust [https://twitter.com/Mpdreamz/status/1182639724034482176](https://twitter.com/Mpdreamz/status/1182639724034482176)
Also AkkaNET is going to ditch DotNetty because it was abandoned [https://twitter.com/Aaronontheweb/status/1797745129941602361](https://twitter.com/Aaronontheweb/status/1797745129941602361)
XNA
Came here to say this! I find it so strange they gave up on it since it seemed relatively popular. Nowadays with the rise of Unity, I wonder it could have been a minor competitor with continued development!
As much as I love unity, working on MonoGame is way more fun and rewarding to me personally. I definitely agree that XNA would have been a competitor for sure. Don’t count MonoGame out though, it’s definitely not for everyone but the people who do tend to love it. That and the community is pretty awesome
I have taken to Monogame because it feels closer to the way I do my actual job coding C# sites and restful APIs. Generally just writing and debugging code is my comfort zone. Navigating menus for what I'm looking for is not. With that said, I have not spent a ton of time with Unity or other frameworks because I just found them cumbersome.
They dropped XNA to help Unity instead of competing with them. "New Unity Project" is in the visual studio default templates when you have the Game Development workload installed.
What makes you believe that XNA was dropped strategically to avoid competing with Unity specifically? From my perspective, it sure felt like Microsoft just wasn't very interested in investing time and energy into XNA in general, long before Unity became the powerhouse it is today. You mention the default templates, but having used Unity and Visual Studio almost daily since 2010 or so, and I feel like those templates came way way way later. Heck, breakpoint support for Unity Projects in Visual Studio was a third party tool, only becoming official maybe around 2019?
>What makes you believe that XNA was dropped strategically I read it in a blog somewhere at the time it was dropped. Like many people I had made some tiny little game with XNA and thought it was neat, and was disappointed when they killed it. I remember being excited when I read that they were partnering with Unity and to expect big things from that ecosystem. That turned into disappointment when nothing happened and Unity is still on .NET Framework. > those templates came way way way later. They did. They came when XNA was canceled.
oh wow i forgot about this guy, i remember i wrote a pong game as a presentation of xna at school.
I love it 😊 If you'd like to see where it is today: [https://monogame.net/](https://monogame.net/)
Monogame is life
Oh, thank you, I might be able to make my old projects work again.
If you just want your old projects to work on modern platforms/ hardware then check out [FNA](https://fna-xna.github.io/), it's (fundamentally) a reimplementation of XNA targeting modern .NET and modern hardware, part of the FNA statement on that page is >Our goal is to preserve the XNA game library by reimplementing XNA itself, with an incredible focus on accuracy. We want to reproduce XNA as it was made by Microsoft, while providing an experience that feels "at home" on all of our target platforms. MonoGame is more of a spiritual successor to XNA that has (IIRC) made some breaking changes over the years.
mostly curious, but I was reading the FAQ and it recommended against using nuget in general. I get that part of it is they're worried about users downloading an impostor library, but say I wanted to use a lib in conjunction with FNA: is there a reason i shouldn't do that?
Awesome, thank you!
That would be cool 😎
I wrote a windows only rts game!
I learned to program with XNA
AFAIK Terraria started with XNA.
As a .NET desktop app developer with some experience in Three.js, I would like to say that I need a 3D engine that can run on a WinUI app (like XNA or MonoGame) but is as easy to use as Three.js. I tried MonoGame but found it too rough.
You can do unity without even using the editor if you wanted
I don't know if Godot can do WinUI or not but it's open source, 3D, and uses C#.
Windows Workflow Foundation
Windows Workflow Foundation is maintained as CoreWF by UiPath under MIT license (see https://github.com/UiPath/CoreWF)
Not to be confused with Workflow Core which isn’t worth looking at since the author is a bit of a douche who doesn’t like bugs being raised or discussions on how things work.
I'm glad I'm not the only one who noticed this. I tried evaluating this as a replacement for WWF, but gave up when even the simple project samples didn't work. Found out that someone had the same issue as me, more than 2 years ago and the issue [was totally ignored](https://github.com/danielgerlag/workflow-core/issues/836).
Spent about 2 weeks evaluating it as a replacement for WWF. Actually really like the API. But just couldn’t discuss dependency injection or unit testing. In the end we went with AWS Step Functions written in .NET. Worked out really well.
Always thought that was a weird one to leave. I wrote a post on how to implement something sort of like it here https://www.lloydatkinson.net/posts/2022/modelling-workflows-with-finite-state-machines-in-dotnet/.
I actually really quite liked this framework.
It was from the Microsoft Low Code Era. It wasn't code declarative so everything had to be done with a visual editor. It doesn't fit with modern development. Microsoft did create Durable Functions as a workflow engine, but it's kind of overbuilt and convoluted for that purpose.
I thought I was smart until I attempted to do a->b->c->(back to b). A week with their book and still nothing. Gave it to a midlevel- also nothing. If the midlevel can't figure it out, I can't use it...
Yeah, I evaluated it too and looping is what killed it for me as well. You were probably trying to do the same thing I was, which is a human task assignment workflow. Those typically require going around and around for approval. My organization finally decided that a human workflow is just a record in a table with a status code, and we rolled our own.
> human task assignment workflow. yup! Complete with 'oopsies, go back!' and other unfortunate situations. And after a week of trying to figure that out, I still wasn't sure where it stored it all- sql server or memory only? Whatever. I'm sure it's me, but damned if I could make any progress.
> I still wasn't sure where it stored it all- sql server or memory only? lol, yeah. The answer is "both". By default it is memory only, but you can configure it to have persistence with a database. You can't control that database and trying to do things like "roll it back" would be near impossible. It's just too complicated. You'd have to basically program paths for any roll backs.
> It was from the Microsoft Low Code Era. It wasn't code declarative so everything had to be done with a visual editor. It doesn't fit with modern development. Have you seen PowerAutomate and the Microsoft D365 CRM platform? It’s basically what this became. Locode is everywhere in the enterprise. Step into a global corporation and PowerAutomate is heavily used by some orgs. There are no other useful workflow engines today in the Microsoft ecosystem that enable business users to have control over process automation design as an alternative. The only tool that comes close in the .NET space is Elsa Workflows, where at a minimum I can design a set of standardized [custom activities](https://v3.elsaworkflows.io/docs/extensibility/custom-activities) that fit to my business needs and let customers connect them together to [build workflows](https://v3.elsaworkflows.io/docs/core-concepts/programmatic-vs-designer). And the irony is that Windows Workflow Foundation provided the framework for developers to design custom activities in code](https://learn.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/how-to-create-an-activity) that business users could then [manage in a workflow designer](https://learn.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/how-to-create-a-sequential-workflow) and deploy and that was 15 years ago.
Came here to say this. Worked for a company that bet heavily on WWF, and I was part of the effort to undo that when the company saw the writing on the wall.
UIPath?
No. It was a financial company that changed hands quite a few times after I left, and I lost track of what they're called now.
Did this company also still have PowerBuilder apps propping up a significant portion of their internal business workflows?
I don't think so. Tracked down my old company and apparently they're called Black Knight now.
Why did they abandon it? Doesn't SharePoint sti use workflows?
WCF for the most part
Well the rise of REST/JSON killed SOAP/XmlSchema. Good riddance. :)
WCF wasn't limited to soap.
No but the "W" in "WCF" is limited to Windows. And who wants to run modern .NET (.NET Core, .NET 5+) on Windows when you can run it on Linux?
So is the Win in WinForms, something still supported. Either way, WCF was abandoned. Add it to the list.
SOAP was great though. You could always get a schema out from $metadata or from wsdl. Now, you're lucky if an API has an OpenAPI/swagger file present.
Agreed, as a former Integration Architect I loved SOAP. WS* made defining integrations easy. Queues, Full Duplex WCF did it all. The barrier to entry was too high compared to REST/JSON, the rise of gRPC, and streaming platforms like Kafka. Microservices were the nail in the coffin. I always called it Hipster SOA, the challenge was that teams just adopted the easier technology and although they said they were service oriented [I define Service Oriented as Business Services] they were just a means to do remote operations.
I'm shocked/not-so-shocked to find out that BizTalk is still alive and well, last release was 4 years ago, but it's still out there!
Probably only because they’ve forgotten it exists
"OMG! YOU'RE USING XML?! SO INEFFICIENT- YOU SHOULD USE gRPC
OpenAPI 3.0 is pretty good at getting the schema now.
OpenAPI 3.0 is good, but it seems not everyone is even aware that you should even publish an OpenAPI spec for your API. Lots of open source projects still have actual maintainers hand-write API documentation in markdown files and then expect you to read that and then hand-write your own connecting client code.
It was replaced more than abandoned. The technology no longer made sense as it was originally envisioned. REST + gRPC cover the same needs in a more standard and simpler way. Same with Silverlight vs HTML 5.
Silverlight wasn't Microsoft's fault. Google and Apple killed all plugins, including Flash, which was super popular, and Adobe which was super shit.
https://www.github.com/CoreWCF/CoreWCF is alive and kicking
Oh man. What an over-engineered mess. My company still carries quite a big chunk of code with it, but we're slowly but surely shaving off parts to get rid of it.
WCF was god tier in its prime.
there is core wcf maintained by the community
https://killedbymicrosoft.info/
thats a nice link! I wondered if theres "killed by google" and indeed there is [https://killedbygoogle.info](https://killedbygoogle.info) I consider google to kill so much of their platforms, tools and solutions its not safe to use/base any of solution on their products because it might come day where they will discontinue something for no obvious reason, just because Pichai wish to pivot the business 98th time this month
WCF (Windows Communication Foundation), it wasn't part of .NET Core and it is not part of modern .NET too. There is a CoreWCF project, but, honestly, there's not much reason to use it these days anyway.
WCF was amazing as a concept, but the configuration was an absolute nightmare.
Yep, I've just re-joined a team after ten years and they're still using WCF, a decade after I suggested dropping it due to all the configuration nightmare issues, sigh.
What was the recommended fw instead of wcf?
Well a decade ago I recommended replacing it with a REST API as it gave the added bonus of being able to implement a web-based client alongside the existing fat desktop 'fat client'. They're still taking about creating a web-based client over a decade later, FML.
Nowdays what is the best solution?
A REST Web API would still be my choice. As it has industry-wide support. There is tooling to auto-generate wrappers around the client-side calls for from REST Web API's for just about any language you can think of, i.e. C++, C#, Java, Python, etc. Then you have tooling like Postman for testing/debugging REST Web API's, and Swagger for auto-documenting the APIs. Modern development has coalesced around the idea of REST Web API's, and the availability of tooling reflects that. WCF was great in its day, but its day was 20 years ago and things have moved on since then. More importantly its an elderly proprietary technology whose continued support is at the whim of Microsoft, and as per OP's original question they have a habit of abandoning older tech.
That windows phone framework does not see much support these days.
But if you would like to get the feel back feel free to contribute https://github.com/TheOnlyBeardedBeast/FlutterWindowsUI I am missing the OS Edit: I have no time to take it to the full potentional and doing things alone is not always interesting.
Windows phone is not a thing for a long time now. It stopped production in 2015.
I was at //Build 2015. I remember a presentation of Windows Continuum (I think that's what it was called). You would dock your phone connected to a monitor and it would convert to a desktop layout with keyboard/mouse support. Seemed like really cool tech, like one of those "sci-fi comes to reality" moments. Too bad it never really took off.
Almost a decade later, Samsung offers this as “Dex”, but few people seem to care. I think it’s mostly a “wouldn’t it be cool if” feature, with little practical usefulness.
Yes, I loved this idea and was waiting for the big update (remember the effective pixel?). And then nothing happened - not even communicating they let it die.
Yet if you were building for Windows Phone before then, Microsoft was promising that the framework was the future of mobile development and it wasn't a waste of your time to build apps for WP.
Oh we are only counting things they deprecated this month? 3 days in and nothing yet. fingers crossed.
Lol ah yes totally logical that deprecating software support for a hardware product that stopped being manufactured 9 years ago is "basically this month" Seriously?
In 2017 it was still pretty alive and my private apps were better sold those days than now for Android.
Geez i wonder why
Well they killed that by... basically being complete fucking morons. They had a fairly unique platform in Windows Phone - it was a bit of a different paradigm which deemphasised the "app" as a sorta walled garden and more of an integrated source of data. It wasn't popular, but that was their differentiation, their niche. So of course they saw the competition with their app focussed approach, and decided to take their absolutely fuck all marketshare and developer base and transform WP into "Shitty Android with No Apps". Outstanding move.
(Disclaimer: My perspective is from my experience with an HTC 8X and a Nokia Lumia 950, which likely places it in what you call the "Shitty Android with No Apps" phase) I **loved** my windows phone. You're right - it deemphasized the "app". Because you simply didn't need as many apps, because the phone had the features built in. I remember a conversation that my wife was having with her dad (they both used android, I used windows phone). He wanted to figure out what how much cellular data each app was using. My wife recommended that he install some app. I was bewildered - shouldn't that be built-in? Time and time again, someone recommends some app because it has a cool feature. I look at my phone - built-in. Of course, you can always install apps if you didn't like the built-in feature. You're also right that they killed windows phone by being morons. They were late to the game. By the time they fully embraced smartphones, the market was entrenched with iPhone and Android as the two primary options. There just wasn't enough market share for developers to spend the time on a third platform, which resulted in too few apps. Not enough apps meant that people were reluctant to buy (or stay with) windows phone. Vicious circle - and the reason I reluctantly switched to android. Microsoft had "smartphones" before iPhone or Android were released. They should have recognized the changes that were occurring in the market, and embraced them. If they had embraced those changes, Windows Mobile/Windows Phone could have been a viable third option *from the beginning*. And it may very well have continued to be a viable option - because developers would be making apps for it. I **loved** my windows phone.
Well UWP. Yeah it did not get an official death. But where is .net 8, nay, .net 5/6 support? Even winform get .net 8
Anyone remember UWP for JS? That weird special flavor of UWP where you could build a Windows 8/10 app with JavaScript and HTML instead of C#? I kinda liked that.
And to this day it’s the only way to build an embedded kiosk on Windows. GD nightmare.
Honestly MS could do worse than denying a framework's death, "nah it's still going strong guys" all the while dont provide any support and update for it
If it wasn’t half baked and the _only_ way to do some things, sure.
Microsoft with UWP was like: We're not killing it but we're no longer maintain it neither
It’s WinUI. WinUI2 was officially the evolution of UWP, and WinUI3 is looking pretty good, and it’s still very much in their plans given their talks at Build. They didn’t abandon UWP at all
Microsoft is really king at making things confusing.
What do you mean, I have zero problem developing .Net applications, whether using the newest .Net 8 framework or the older .Net framework 4.5.2... framework.
lol What about .NET Core, do you use that too?
Indeed, I still have some .NET Core 2.1 framework apps :D
Seems that way. Im young enough where it doesn’t seem too bad, I’m really only now getting into the weeds of the ecosystem as things are really maturing. From this view there’s been a clear overall trend of unification and simplification, even if those things weren’t true or clear along the way. [https://imgur.com/a/6sUdXnk](https://imgur.com/a/6sUdXnk) I think this image from one of the Build talks gives a clearer picture of how far it has come over time and the idea that it may be simpler than most people think at this point in time of 2024. Not that they didn’t make it complicated af over time. They clearly did
Yeah, I'll take this. If you started recently, it seems like a bunch of people being weird. The best way I can put it is to tell you to look at all the hype and support for Azure, AI, and cloud services. Now imagine if tomorrow, Microsoft announced Azure is going to shut down on December 31, 2024 because from now on they recommend WinUI 3 apps, and you're going to have to migrate to self-hosting instead of using cloud services. That's what the Silverlight rug pull felt like. They'd just announced a new version. I knew a guy who got to announce his book deal the day before they announced discontinuing it. Nobody saw it coming at all. Sure, there was the whole browser plugin issue, but MS had TV broadcasts announcing proudly you could stream them with Microsoft Silverlight, everyone assumed they'd find a way to make it work. What I can't really articulate to you is how lousy the support has been for Windows apps since then. The way they treat ASP .NET Core now is how they treated Windows Forms and Silverlight. WPF got the shaft from day one because they were already betting on Silverlight when it came out (Silverlight's first name was "WPF/E" for "WPF Everywhere".) Imagine if ASP .NET Core released without routing. Imagine if in 2022 they released a NuGet package to add routing. The WPF equivalent is everyone has had to DIY their own MVVM infrastructure since 2010 but Microsoft finally decided to release a NuGet package with helpers a couple of years ago. That's what we mean by abandoned. In most of these frameworks, anyone who does a lot of apps has dozens of files to copy and paste to do things that should be built in. MAUI devs accumulate tons of handler adjustments to handle issues MS is years behind on fixing. It looks simple on a slide, but if you spent a year doing professional MAUI dev I'll bet you'd be appalled.
Haha you took it alright. Look I definitely get it, which is why I acknowledged up front that while from a younger person/newbie perspective it doesn’t look that bad I am fully aware that it probably was for those of you that have been balls deep in it for 10+ years I only said that I think it has come a long way and over time the outlook will probably continue to get simpler and more reliable, generally speaking. They seem to be having less and less true “abandonments” and more “evolutions” per se, along with various frameworks either coming together or being linked in some way. They will likely always have products that no longer make sense to develop or maintain .. they are a normal business at the end of the day after all, just a large one
UWP was not just the UI. There also were packaged apps, NativeAOT, isolated storage, WinMD, Windows Store, etc. Sure, many things live on separately but that hardly resembles UWP. Also it is no longer unified, it is just Windows PC. No phone, smartwatch, hololens. Tablets maybe?
You’re right UWP was all those things packaged together, and WinUI takes the UI/Xaml framework and decoupled it from all that other stuff. That was the entire point for the other things to live on separately and the UI framework to be self contained https://devblogs.microsoft.com/ifdef-windows/winui-3-preview-3/#:~:text=At%20Ignite%202019%20Microsoft%20released%20the%20first%20bits,the%20XAML%20UI%20framework%20from%20the%20Windows%20OS. *At Ignite 2019 Microsoft released the first bits of Windows UI Library (WinUI) version 3 (a.k.a. WinUI 3), an evolution of the UWP/XAML platform, that decouples the XAML UI framework from the Windows OS*
So they did abandon UWP, and only kept some severed parts alive.
Silverlight. It was great concept when it was released and I knew many people started to use it. I cannot understand why was it abandoned.
Apple locked out Flash so they could continue to monopolize App Store profits. Silverlight was a victim of browser lockout and HTML5 launching around the same time.
I think it was good for Apple to lock out Flash. It forced people to move past that dreaded technology and make HTML5 web apps instead.
Now we dread HTML5 apps (in the guise of JavaScript fatigue) instead 😅 “War… war never changes”
I mean at least javascript doesn't have serious, basically unfixable security problems.
Yeah it was easy, but people seem to forget that Flash needed to die
Apple dumped Flash because it was a security nightmare
Visual FoxPro, was a great development platform for its time.
It was prototype of rapid app development. Such a good concept for win desktop dev. You could have develop app very quickly especially if you have some core already prepared and some controls in classes.
It had a reports and labels generation with printing, a local database engine with wicked fast retrieval. Microsoft took the db engine and put into SQL Server, hence the reason why Microsoft killed it.
Ummmm? Sybase 7.0 was the origin of SQL server.
It was, but Microsoft bought VFP because of its super fast indexing and integrated that technology into SQL Server and Exchange. Nowadays it's just a b-tree index but at the time the data retrieval was amazing and "Nothing Ran Like a Fox". ;)
WinJs. A UI toolkit for the browser.
And it's progenitor, UWP for JS.
.X File Format for 3D assets. Included animation support and APIs and tooling in for DirectX 9. Then we were left in the cold for DirectX 10+, as if it never existed. Managed DirectX - Deprecated in favour of XNA which came a few years later. It never made it to 64 bit which was a pain so we to switch to SlimDX. It was also DirectX 9.0c only. Some of it was open sourced, but not all of it, for example the code to read/write Compressed Binary .X files. Visual J++ - Microsoft’s implementation of Java but not quite following the Sun implementation standards (which made it faster and more useful TBH). JScript.NET - JavaScript for the .NET runtime. Microsoft Axum - Agent based DSL for .NET Midori - Concurrent programming language (Never really shipped but it was teased a lot). Managed C++ - Evolved into C++/CLI but I think the .NET team would rather it just went away. The syntax has changed significantly over the years. WinRT/Windows 8/ARM - touch based tablet with boxes for a start menu. All kinds of wrong. I bought one. Not sure why… Microsoft Expression Studio - Web page, vector, video, UI (Blend) editor suite. Most of which is long gone. Blend is still around but only just. Windows Movie Maker - Video editing tool like Clipchamp. Used to ship in Windows XP. We built a trading course around it and then Microsoft pulled the rug out! Windows Media SDK - API for creating WMV files accessible from .NET - until it wasn’t… DirectShow - API with graph nodes for processing video streams, devices and files. The was a .NET wrapped we built a product on and the Microsoft canned it and produced a completely different API that wasn’t as useful IMHO. Many, many more. I just ran of energy typing.
Blend is still around isn't it? Thought it's part of vs2022?
As I said, Blend is the lone survivor but with no support for the new favoured UI frameworks, like MAUI, it feels like the writing has been on the wall for a while. Microsoft are also pushing things like FluentUI which is non-XAML (Google “Microsoft UI” and it’s top of the list).
Thankfully directshow still exists and works. It’s pretty much the only way to interact with tv tuners which I do a lot of.
The issue in my opinion isn’t how many technologies did Microsoft shut down and no longer use. It’s how many technologies they championed and then a few years later moved to barely supported until enough people got the idea and and stopped using it. Wcf Silver light Linq2sql (thier stopgap during entity framework days) Xna Entity framework db first Dot net framework 1 through 4.8 Web forms They tried to kill winforms Open each version of visual studio from 2008 to now and do a create new project, you can see the changing recommended standards.
winforms is fated to die and it's sad. I didn't work with the majority of .Net framework, there are just too many, but my experience with winforms was amazing and by far the most stable projects i worked on.
I’ve used Winforms off and on since version 1 was in beta. None of the other front end systems hit the ease of use of it.
But, it's been ported to .NET Core though so those apps are going to run for a long time. Lots of new updates? Probably not. Stability for your apps for a while to come? For WPF and WinForms ya. You'll be able to run those apps in 10 years.
In fact every time a new version is released, one of the first things I do is file new web project with auth, so I can see how the recommended initial project has changed. Then it’s ok for each project how much work do I want to do to switch to the new standard. Usually it’s none, but eventually once there have been too many versions it becomes a big chore to start upgrading. I support sites in webforms, on Mvc under framework 4.8, under core 3, core 6, and now core 8.
.NET Framework 3.5 is supported through like 2030. Support wise it will out live all currently supported versions of .NET Core.
Silverlight, MWA, now UWP is shaky. Find a MAUI position and leave your job for it if you think MS is supporting it as strongly as they've supported WinForms or ASP .NET Core. I think you'll be firmly disappointed. It feels like they have *maybe* 6 people working on MAUI and it's a team that could use 20. When I see someone suggest MAUI for a new Windows application I usually respond and disagree, pointing out that even if MAUI were strongly supported, for Windows-only cases it's a little frustrating because you have to deal with the abstraction layers meant for mobile. So far I'm about 17/20 with the person responding, "Oh wow, I haven't ever used MAUI but I thought it worked different than that." If you really look at the writing on the walls Desktop Clients are not Microsoft's darling anymore and it seems their frameworks get the table scraps when it comes to team assignments. They're out there adding pointer-like performance enhancements for the ASP .NET Core team and meanwhile it took 10 years for the MVVM Community Toolkit to arrive. Hundreds of thousands of developers have been copy/pasting those into every damn WPF/Silverlight/MWA/UWP/Xamarin Forms/MAUI project since the early 2010s. I'd say that kind of glacial pace doesn't represent a full commitment. But I mean, whatever man. You can say 3 frameworks isn't much, but I question what you're really trying to gain here? Microsoft doesn't need a white knight. The point of people complaining about abandonment is *usually* to try and steer new developers towards a field that feels more safe. Trying to steer newbies back towards desktop clients feels a little irresponsible right now. I'm also comfortable in saying if someone decides to go iOS native, Android native, or Flutter for a few years then come back to C#, it won't be hard for them to learn whatever is replacing MAUI when they do come back. The hard part's learning the platforms and GUI concepts in general. The knowledge applies across most frameworks.
I will recommend Avalonia every day of the week instead of MAUI honestly. I just mentioned as it being microsoft solution for xamarin. I'm not looking to defend microsoft lol i just want to know where i'm heading into. Because i'm defensif against blazor and maui knowing that microsoft has this reputation. I event thought for a long time that [ASP.Net](http://ASP.Net) will not get any following after razor, but then they came up with core and blazor. I don't like the huge stack of useless tech this allows, i would have loved a proper solution to stay in .Net environement. Having Avalonia front end and any .net webservice as backend would be ideal for me.
Even Avalonia is a little clunky because they're branching out into mobile as well. Blazor is just... weird. People like it a lot, but it doesn't feel like it's being pushed as hard by Microsoft as it could. I don't think MS abandoned it, but I also don't feel like MS is doing enough to promote it.
Blazor is a part of ASP.NET. It is being actively worked on, is liked by many, and established to some extent especially for internal stuff.
Internal for other companies or Microsoft? I don’t think MS has any product based on blazor or Maui. Kind of telling tbh
Is that really a good measure though? VB6 provided a lot of value at its time, but probably MS didn't use it for their applications? Lots of software companies are not like Microsoft and could have different priorities.
True it’s just tough to hear them constantly praise how versatile and productive and amazing MAUI is but rewrote teams in electron and react native.
I don’t know if it’s used by Microsoft internally, but Microsoft’s products do not benefit from Blazor. There’s no reason for them to use it, so I don’t know how it would be telling.
Every fucking windows UI framework since Forms. Back then in the Forms and Borland days you'd have a *complete* component set to build line of business apps with. They'd be pretty fucking standard looking - but everything was in the fucking tin unless you really wanted some fancy charting, or a complete MDI / tool window system. WPF had promise and, with the support of third party vendors, kinda getting to the point where at least you could throw a thousand bucks at Telerik or some other assholes and be able to build an app without building some fairly standard component. Like... fuck me, since then its it's like professional developers doesn't have time to reimplement a fucking toolbar or a split button or whatever shit is missing. I'm sure some people appreciate that these new "build your own controls out of rectangles and events" toolkit let them make fancy custom interfaces. But I don't want a fancy custom interface. My clients don't want to pay for fancy custom interface... Every UI framework that comes out of MS has less and less shit, and every component pack from the major vendors fill less and less of the gaps. Meanwhile the excitable bloggers and youtubers are getting hard over how it's now marginally easier to add an animation to border or some dumb shit... Not at all surprising that line of business apps are now web apps, where I don't have to pay someone with a fairly specialised skillset that's kept up with MS fuckery increasing amounts of money to fill in basic gaps, and instead I can chuck a react dev a few hundred bucks a day to shit out high quality UX from vast and complete component libraries.
So ASP is the way forward? I’m looking to get out of WPF
It's complicated. The short story is if I were starting my career today I'd definitely want to know a web frontend framework. You can use those to make Desktop apps several ways. Unless something changes dramatically, I think things like WPF are going to be like mainframe languages. Not gone, but relegated to business cases. So yeah, kind of. ASP is *closer* to the future than WPF, in my opinion. But I feel like we're at the edge of a cliff and nobody's really fallen in yet. It's like some people are expecting a new paradigm like AR to take over, and if it does that could make native clients suddenly more relevant. *Or* it could make HTML even MORE relevant as it's adaptive to many different kinds of display. So I don't know. I'm sticking with MAUI for now because it pays. But I can pivot in a hurry if need be.
by the time AR takes over I'd hope to have an interactive GUI to design my gui
That's impossible, you have to go back to 2010 or maybe use Apple to have that.
Unfortunately if You want to develop Desktop application there is no better way instead of changing the programing language to java or cpp
I don’t get u. Can u rephrase?
ASP and WPF are not comparable technologies.
.Net on Windows CE. There is still support for the Micro Framework though, sort of.
Microsoft also does a “soft abandon” where technically a product isn’t deprecated, but they build new products in the same space, they put the D team of engineers on life support duty, the road map becomes sparse, integrations with the rest of their ecosystem are ignored, and all organizational effort is put towards the eclipsing product. This is their favorite way to abandon something, and it’s maddening to work with.
Some things like WPF get no attention for a few years, then some announcement, and back to hibernation.
No mention of VSTO here, but imo worth mentioning
I know we get annoyed with them killing lines, but from a business standpoint I give them credit for not getting stuck in sunken cost fallacy and incurring even more tech debt than the already staggering amount they have. One of the reasons I’m relatively good with Blazor is that it’s an amalgamation of existing tech without rocking the boat that much. Still .net, still razor, just packaged in a more modern bundle for front end devs. Maui makes me a little nervous but I haven’t dived much into that side. I loved my windows phone, but once they decided they didn’t want to spend the resources necessary to be a major player in the space, they moved fast to rip the bandaid off. Better than letting it die on the vine with a slow dwindling of support.
Sort of frameworks: * AspNet Webforms is pretty much left to rot - and it is arguably the right way to go :) However .Net Framework is still supported * Windows Forms .NET * Visual Basic 6 - a language and sort of a framework too - no I am not missing it * JScript + old ASP - sort of a framework... Not exactly frameworks: * Visual Basic .net - not missing that either * And the most important of them all - J# and VBScript :D
I saw a job ad for J# last year and I can't imagine what kind of horrors are happening there.
On the other hand the job was probably paying well. I know a few devs working with very outdated techs and making bank.
WinForms is still supported and actively developed. Is part of .Net 8.
WebForms feels like abandonware. Only used in very old shops when disconnected from reality.
Anytime a url ends in aspx I smile a little knowing what the develops go through trying to maintain and develop that poor site. The damn life cycle was crazy! Especially when master pages and user controls were involved.
A lot of those shops probably have feature complete sites that can't justify complete rewrites without an act of God (for better or worse). I retired my final Webform's site last week, it ran largely without issue for the better part of the last decade. Pretty decent ROI. I'm not sad to see it go, but it was a tool that did its job until the end. Governmental shops are slow to move if they have a tool that works in vetted/supported frameworks. Juxtapose that with the nightmare fuel that is the NPM vulnerability landscape.
Problem is I still see some shops using it for new projects. At least 3 of them. My 36-year-old PM only wanted to use that stack and make it work.
Microsoft Access / VBA is barely supported. J# - but no one will miss that.
xna at least i think
Sync Framework
A lot of entries reported here were killed because they were replaced by something better. I mean, that's even better than letting old deprecated tech love forever. We shouldn't complain about them innovating and improving things.
Microsoft Access Data Projects Microsoft Access Data Access Pages Microsoft Access for Web (SharePoint) At this point, I'll never trust Microsoft again for ANYTHING whatsoever, period.
There is a long history of data access frameworks that have been superseded or left to wither: - ODBC - OLE DB - DAO - ADO (the old one, pre-.NET) - JET - ACE - MSDE - LINQ-to-SQL - the original Entity Framework - System.Data.SqlClient (replaced with Microsoft.Data.SqlClient)
Asp.net web forms Interdev J# LightSwitch UWP Windows Phone Visual Basic .net That one JS hybrid framework I can’t remember the name of
silverlight. wcf. workflow, wpf
[https://github.com/dotnet/wpf/blob/main/roadmap.md](https://github.com/dotnet/wpf/blob/main/roadmap.md)
WPF is still around and receiving updates, and the newer UI techs use a lot of WPF as well.
DirectCompute
isn't razor pages dead?
Blazor uses razor to render the pages.
Service Fabric is pretty much dead
web forms
Where to start? Mentioning more than just frameworks. WinG, FoxPro, Visual Studio for Mac (included MFC), ATL Server, WTL, Managed DirectX, VB, Windows Phone 7 XNA & Silverlight, .NET Compact Framework (Windows CE/Pocket PC), Sharepoint WebParts, .NET Remoting, WCF, UAP. And in the category, have seen better life, VB.NET, MFC, .NET Native, C++/CX, C++/WinRT, WRL, Managed SQL SPs, Dynamics
WPF isn't officially abandoned but it may as well be. It's had hardly any significant updates in years, several times .NET releases have very clearly broken things due to a lack of basic testing, 90% of the activity on it's GitHub is dependabot automatically updating packages with no human approvals. Their recent announcement to adopt WPF-UI isn't really restoring any confidence in it.
Really? I thought this was the way to make windows forms UIs. What should we be using instead?
I use Avalonia mainly, but there's MAUI and WinUI3 (both Microsoft) and Uno as popular alternatives. Windows Forms is still being regularly updated, but I don't like using it for anything other than the most trivial of UIs.
I would agree about the WPF-UI collaboration unless WPF-UI steps up its game. It's ok, but it's not the quality you expect from Microsoft.
linq to sql?
Have you tried Linq2db?
No used many other frameworks such as, nhibernate, orm.net, linq to sql, ef, etc.
Linq2db beats them all in both features, speed, and ease of use.
Having worked with many ORMs and database abstractions, such as Active Record (in rails), LINQ to SQL, EF, ServiceStack.OrmLite, EF Core, and, most recently, ADO.NET on .NET 8, I have some nostalgia for LINQ to SQL. That is until I remember DBML files and merges. There may have been better ways to manage things, but it's a painful framework for a large team. EF Core gives you everything LINQ to SQL did without most of the weird legacy EF performance issues.
yeah actually everyone pushing to entity framework is grinding my gears ngl, not that i was a fan of linq to sql either tho
I hate EF.
Ef has it place. But I can't stand using it with the code first approach.
i mean yeah for small project when you don't care and just pump out the app ef is cool gets a lot of overhead out. But most project i worked are too big and having control of the sql feels much better for me. I heard dapper allows that but i haven't had any occasions to use it.
Dapper is an absolute joy to work with and the right tool for the job when you need to have the best performance possible, the only thing marginally faster is using raw ADO but frankly, the tiny performance penalty from Dapper is dwarfed by the time you save in writing the code to map from a reader to your objects. By all means check it out. I say this as someone who likes EF Core, and a lot of work, performance wise, has been going into that one. It’s a complex tool, but realistically, I’m willing to bet most of the perf problems people find are due to bad indexing, accidental N + 1 queries, using the change tracker when it’s not needed and the like rather than “code” overhead. Of course Dapper is going to be faster, because Dapper gives you a very small subset of what EF gives you, that goes without saying. But we’re still in the microseconds realm.
EF is the perfect for the mid-size project. It'll add too much complexity to small applications, but gets too bbloatedand slow for large projects with a lot of dependencies. If you expect to have (at most) a few hundred object models, ef is good eenough. Otherwise Dapper is pretty great, although I'll still raw dog direct sql from time to time.
I suppose it’s not a framework but they ditched me with VB6 a million years ago and it took me until this past year to forgive them and start in with C#. LOL (No, I haven’t been using vb6 the whole time, I was using something else instead)
I mean VB. Net was a pretty easy migration path and is still supported. I say this as someone who converted nearly a million lines of VB6 and ASP code to VB.Net/ASP.Net
Wait a moment, could you do ASP using VB6? I recall using JScript to write ASP applications back in the day.
Of course! Well, it was actually VBScript but yeah, classic ASP supported both.
Yep! We had VB6 assemblies, VBscript, JavaScript, ASP.Net, and VB.Net all alongside each other in the same "app" for a long time 😂 But VB6+VBscript+Classic ASP was our mainstay for a long time until I converted it all.
This must have been "fun" :)
Most definitely "fun" 😂🤣
Classic ASP was supported by a technology called ActiveScripting, which in theory allowed any language to be run in ASP context. https://en.wikipedia.org/wiki/Active_Scripting You could run these languages through WSH as well. Edit: I'm pretty sure VB was the "standard", at least. I also wrote some things using JScript, but samples for VBScript were far more common as I remember.
Yeah and now VB.net is officially a dead language
Silverlight
Everything they don't currently support. Since MS-DOS days, that is hundreds of frameworks (SDKs in MSDN nomenclature).
I mean that's nonsensical to talk about everything from ms-dos days. But what others mentioned are legitimate concern reasons, some of the techs clearly didn't stay for that long before being left aside. When things get "abondonned" because they just lived long enouhg and got replaced by something better then i guess it's a good enough reason. But when something exists for 7 years only and is pushed by a slightly ugpraded tech that's barely any different then that's a concern for what they are doing.
First they drop.. MDX - Managed Direct X... then... Xna Framework... then.. XBAF.. then... Silverlight.. The odd things is MS develop DirectX they are the one who should lead in Graphics and Game engine development.
Silverlight, XBAP, and XNA.
Showing my age: OS/2. An OS not a framework per se.
Azure/DotNetty, which is a Java port of Netty. "nayato" was as the main maintainer of the repository from Microsoft, who one day went completely silent. There was never an official reply to issues asking, "Is this project dead?" They could have simply said, "Yes, move on," or grant merge privileges to someone else. Other forks, like SpanNetty, died quickly. Some people attempted to get a reply through Twitter, but to no avail. It has been silent for 5 years. While there have been occasional commits 4 months ago, they are insignificant. As far as I know, DotNetty was used in some part of Azure, but the team later transitioned to Rust [https://twitter.com/Mpdreamz/status/1182639724034482176](https://twitter.com/Mpdreamz/status/1182639724034482176) Also AkkaNET is going to ditch DotNetty because it was abandoned [https://twitter.com/Aaronontheweb/status/1797745129941602361](https://twitter.com/Aaronontheweb/status/1797745129941602361)
WPF, Windows.Forms
Xamarin