Visual Studio is littered with SQL server and Azure tools which doesn't even make sense. Either offer equal tools for all major tech or none, but this subconscious constant selling of their own tools sickens me slowly.
> Visual Studio is littered with SQL server and Azure tools which doesn't even make sense. Either offer equal tools for all major tech or none, but this subconscious constant selling of their own tools sickens me slowly.
Of course they support their own tools, but you don't have to use Visual Studio, you can use VS Code if you like. But I can understand why people like Visual Studio - live unit testing alone is reason enough to use it.
And this is a scenario where your company can get an 80% discount (not sure this is doable) plus Resharper has a perpetual license you can keep after 1 year, just without updates.
I've made an account because this attitude irritates me.
1. This is patently untrue. The real reason is that a large number of developers simply have more important things to do (friends / family / children etc) than learning whatever is considered in fashion. Scott Hanselman even has a name for these developers "Dark Matter Developers".
If you have 10 years of experience working with .NET and all the parts that normally come with it, it makes more sense to keep within the ecosystem and keep up with the changes in the tooling if you want to stay up to date. There isn't much benefit for most people to look outside of it.
I've personally got sick of things changing every 3 months and build almost everything exclusively using full fat .NET because I know it isn't going to be gutted and changed in 6 months time unlike .NET core. It has also 16 years worth of development and documentation behind it. I don't need to spend half a day trawling through stack overflow posts.
2. Most software that is built in .NET is intranet software that will never be seen by the public. It is most likely hosted in a server rack in the basement. Almost 90% of the problems when developing in these places is internal politics, poor IT infrastructure spending and abhorrent legacy code. I could probably list another hundred common problems.
The whole point of VS is that you shouldn't have to go outside of the IDE very often. Thus why wouldn't Microsoft offer tight integration. If you don't want to see the tooling, remove it from your VS installation or use one of the many alternatives now (Rider, VS Code or setup your editor with Omnisharp).
I've worked in a variety of shops, both "Microsoft" shops and non-Microsoft shops, and I would most certainly agree with the GP That Microsoft shops tend to be dominated by developers who like the comfort of just eating whatever pablum Microsoft is serving, often even if that pablum will take years longer to digest than competitive alternatives. There is, in general, a tunnel vision that profoundly limits the options available to build solutions, at substantial project cost.
And it's understandable. If you're at a Microsoft shop you aren't going to challenge the norm if your first choice is SQL Server and BizTalk and Azure, etc. It's the easy, laziest option. Occasionally it might be the best option, but that's just accidental given that the choice was predetermined.
That's what Microsoft's core customer base cares about.
I dunno about this. The vast majority of costs in any project is contractors / staff rather than licenses.
I added up the cost of hiring 3 contractors for a month versus just buying a piece of software that did 90% of what the business needed. We were much more expensive.
> And it's understandable. If you're at a Microsoft shop you aren't going to challenge the norm if your first choice is SQL Server and BizTalk and Azure, etc. It's the easy, laziest option. Occasionally it might be the best option, but that's just accidental given that the choice was predetermined.
It is also kinda counter-productive for everyone else. If everyone knows how to do something in a particular language + IDE it makes things easy because knowledge can be shared without a steep learning curve.
e.g. I write lots of scripts using python, I mainly work in .NET shops.
I left instructions for the whole process on how to get the script to run for an adhoc support job I wrote 5 or 6 years ago. For whatever reason it broke (the db structure changed slightly). I have been in a lot of contracts since that job and it was just cheaper for them to call me up and pay me to fix the script than have one of their devs look at it.
The only reason I wrote it in python at the time was because I didn't know Powershell at the time and they said I could use what I wanted as long as it was documented.
I'm not sure if that is the original post.
There was a bit of backlash against it, someone even published a 5:01 Manifesto, but that site is not maintained any more :D
Hanselman is also one of those developers that can bang code out 24/7. I've met them. They can get a lot of stuff done, however there is usually someone like me that is picking up the pieces left behind.
Recently I worked with one and he banged out an MVC project, commented out all the tests I wrote after he changed the API I wrote and then went on holiday to Greece for several weeks and then was moved onto another project. Guess who had to clean up the mess ...
After a while you realise that it isn't worth the effort and just get a contract job where you earn twice as much and have none of the bullshit.
There are those argued that any innovation is unneccesary until MS launches a product for it, when it becomes a "must", ad nauseum. I'm talking about the developers who never discovered ORMs until MS pushed theirs, who let their products languish for years waiting for MS to address issues, and move lock-step with them on all fronts.... You've seen major motion with "Alt.NET" groups, and some pretty major internal revolutions based on the displeasure of community technical leaders (and their willingness/needs to hop off of MS solutions), that stem from this dissonence.
It can create some cross-purposes in their tooling when they're aiming at conservative C#'ers who want a unified MS experience and look at no other technical sources... Especially for the Enterprise devs, cloud-native architect, and cross-platform engineers who have clear needs that don't jive with those assumptions.
F# and .Net Core are the only reasons I'm still on their stack. It's a dream to work with, and addresses critical issues of cloud and distributed engineering that previously would have excluded MS and .Net from the discussion. Particularly with scalable cloud systems, OS licensing fees are often show stoppers for NGOs, non-profits, academics, and researchers
Although to be fair, they were taught this by Microsoft. Before Microsoft saw the writing on the wall and changed approach not that many years ago, the strategy was to provide a Microsoft solution for everything. Useful stuff from outside Microsoft would be either be cloned, or MS would simply not implement compatibility or integration.
The .NET ecosystem was, and still is, utter dominated by Microsoft at every level, unlike Java where multiple vendors provide implementations, innovations, certification etc. It's a bit unfair to blame the developers in the ecosystem for not pushing back hard enough against the organization that provided literally everything, from the software licenses to the professional certifications.
Because every ORM sucks outside of the ones built on top of Linq.
Linq is great because it makes a query language a first class citizen and it decouples writing the query and the implementation.
Linq => expression trees => provider => native query language of data source => data source.
Written correctly, you can pass expressions around like:
repo.Find(c => c.age > 65 && c.gender == “male”)
And the expression can be interpreted at runtime by either EF creating native sql or the Mongo driver creating a native MongoQuery or even an in memory List for unit testing.
No matter how good another ORM may be for another language, what made C#s implementation better was Linq + expression trees.
There was also another Linq/ORM I used back in the day for Postgres. I can’t remember the name of it.
However, my main complaint is not that they advertise their own products, which is absolutely fine, but the way how it is done is starving the .NET community from anything else but Microsoft. The way how all their .NET products are extremely tightly linked to a point where wanting to use something else but Azure or VSTS becomes almost unnaturally difficult, which is what I really dislike. For example, if I look at a nodejs product then I see documentation for all various integration points, with AWS, GC, Azure, etc., but when I look at a Microsoft library there is no documentation or integration points out of the box but Azure and that has a ripple effect on the rest of the community. Every library author only builds their tools optimised for Azure and don't even think about what else there is, which is quite upsetting.
They've made substantial efforts and improvements, so credit where credit is due. I think the broader .Net community needs to pull their thumbs out and take a hard look at why C# OSS has struggled the way it has, and how the ecosystem should be maturing.
The cross-platform, OSS-friendly, orientation of the F# community has been much more reflective of my technical concerns, platforms, desires, and predelictions.
So Google and Amazon should be scrambling to perfect the deployment plugins for VS.
True, microsoft is SELLING (some editions of) VS - but there I'm sure they weigh both demand from customers AND the potential earnings. If AWS and Azure features are equally in demand, of course they will focus on their Azure features first because they have benfits for Ms.
The built in support for GitHub is fine, so you can stop moaning about VSTS.
Also, you don't have to use azure or SQL server. You can close those tools and, poof, it's done.
One of the more ironic things is that there's a growing dissatisfaction with MS precisely because they're making it more flexible.
Lots of people just want stuff that works with no config, no mucking around with command line tools.
That MS are proudly going 'run dotnet blah' is actually, in a lot of ways, a bad thing. Why can't I just click a button, and why clutter tutorials with lots of pointless command lines?
The 'no hassle, no fucking around with shitty console tools' programming alternative is going away.
That's a pretty easy ask.
The problem is often trust. Like so many Microsoft projects, to me the goal of .Net Core seems to be to get as much people as possible on to a proprietary language and/or get as many devs as possible onto developing stuff that doesn't hurt Microsoft. There's no guarantee that MS will not pull the plug at some point, and then soon after that .Net and .Net Core will start to diverge, and MS will lure in as much devs as possible with proprietary functionality that everybody wants but is only in .Net, not in Core. Or they'll just pull the plug because of whatever reason, like they did with Silverlight and Xamarin.
Don't get me wrong, I kinda like C#. But right now .Net Core feels like it's been developed by Microsoft, not like it's open source. I'm not entirely sure but is looks like the community developing .Net Core is made up almost exclusively of MS people.
I looked for the stat to back this up, but I believe either AspCore or NetCore was one of the most active in terms of community pull requests for a while. I mean first, there is the sense that it _is_ open. If they do anything too evil, take it and fork it. You may say that is a huge undertaking, which leads to my second point:
In my day to day I don’t have time to contribute much to such a large project. Having the backing of a large company does present some issues, but it also lends some stability you need for a large project. This isn’t some mall pet project that takes off and fizzles. I feel the same way about Angular- I don’t like some of what they do- I prefer Vue- but can be confident it’s not _going away_ soon because Google backs it. In the case of .NET Core, though, even more so since it’s such a large part of core operations. So while even more community support would be nice, from a standpoint of trusting the product, it’s enough that it’s open source and the process is transparent even if dev hours are paid for by MS.
In the end, I think some distrust is valid, but some of it is kneejerk reaction to old MICROSOFT that is gone now.
This is my biggest reason for losing enthusiasm for .Net Core. Despite all the noise about open sourcing the development on GitHub, it still feels like Microsoft treats .Net like a Microsoft platform, not an open platform. And I'm not talking about Windows vs Linux. More that the design direction for .Net seems to be largely set by internal Microsoft politics. For example, the recent ASP.NET Core running on .Net Core vs .Net Standard decision seems to be driven by how tightly tied the .Net Core runtime is to its underlying OS.
Compare to Java with the JCP (because Java is often compared to C#). The JCP is far from perfect (e.g. all the drama with modules). But, regardless of my views of Oracle, when I'm using Java I don't worry as much that I'm tying the long-term stability of my tech stack to the whims of a single company (even with the new JDK licensing snafu).
On a side note, I'm really confused when I see people talk about how great the new tooling is. Sure, the dotnet CLI tool does more out of the box. But it still can get hairy very fast because of all the design baggage it inherited and shoved under the covers with the fancy new SDK abstraction. And Microsoft keeps cramming more and more complexity into NuGet which makes it a pain to integrate with third-party tooling.
Lastly, for the record, this isn't an anti-Microsoft rant. I think they've done a lot of great work with .Net Core---the standard library updates, cross-platform runtime, Roslyn---and I still am very productive writing .Net for my day job. Like I said, I've just lost my enthusiasm.
A good language is only part of what makes it appealing, having a large diverse open community is often more important as it ensures mature bindings are quickly available for new technologies and 3rd party API's, it influences whether the language will be used to create new technologies (instead of just playing catch up and making clones of what's in other languages), whether libraries are able to succeed on merit so it doesn't discourage the community to invest in developing a variety of competitive options and whether there will be an active community available to quickly answer questions and resolve issues.
.NET Core will never have the community of other popular languages, unless you're happy to use Azure and want to be locked into using Microsoft technologies there are much better platforms to risk your business on instead of committing to one whose future is controlled by self-serving interests.
I don't get all this hate against Microsoft because they suggest or prefer things they worked on as solutions, without actually tieing you to them. Do you work on software for years and then tell everyone to use something else?
If it was actually tied to their other services then I could see the reason to avoid it, but if using .net core without windows, azure, or sql server then I dony see how you are actually tied to it
Unless you want to be locked into a future centred around using Azure and Microsoft technologies, there are better, more open vendor-neutral languages with more diverse and mature libraries you could be building on.
Objectively, MS simply has done more work to create a comprehensive package. It would be a disservice to their customers to not increase integration between it all. For the longest time, this was Active Directory. Today it's Azure and .Net. Amazon doesn't control one of the most popular programming platforms to do tighter integration than already exists. Oracle does, but I've never really heard much about their cloud offering.
Microsoft has all the pieces, either it's appreciated or you can resent it. But they are no longer forcing you to use it, it's being sold on merit and I like what I see.
Over half of the VMs running on Azure are Linux. Microsoft knows that the future is not selling Windows licenses.
Agree about the Windows licenses.
The C# compiler (Roslyn) is completely free and open source, as are a number of .NET components: CoreFX - Core foundational libraries, CoreCLR - runtime.
As well as PowerShell, VS Code, Typescript, ASP.NET Core, MVC, Blazor, F#, Z3 Theorem Prover, etc.
And that's from just the first few pages of their Open Source page: https://opensource.microsoft.com/
Do you people do any basic research, you know just googling or reading the license?
No. So far, only Microsoft has implemented the language spec and as long as no one else does it, no one can. Prove to me that "anyone can implement it" by pointing to someone who has done it, instead of relying on some theoretical "it could be done" fantasy.
The amount of effort, time, energy needed is just not something anybody else outside of MS is able or willing to put into implementing the language spec.
At least 3 serious, large scale long term non-Microsoft implementations.
Or something like https://github.com/SandipKumar05/C-sharp-Compiler and then you can argue that if it only implements a tiny part of the spec it doesn’t count and that proves it’s a Microsoft conspiracy?
Visual C# is Microsoft.
Visual C# Express is Microsoft.
Mono -> Xamarin is now Microsoft.
Portable.NET -> Dot Gnu Project, has been decommissioned 11 years ago.
SharpDevelop -> IC#Code Team, project will be/has already been decommissioned, see .
Roslyn -> .NET Foundation, which was written by Microsoft, and is currently maintained (according to ) primarily by people working at Microsoft.
That last repo you posted is of course nice but like you said, it's tiny, doesn't even support arrays and is undocumented. Seems more like a assignment for a compiler building course. Like it though.
So, thanks for making me do some googling on this, but it just proved my point.
Yes I am sure that it takes a lot of time, but anyone who is willing and able can do it there is no-one stopping anyone from doing it.
The spec is open, the source code for pretty much everything is now open and is sitting on github, it has been ported to MacOS, iOS and Linux and it runs on both x86 and ARM what more do you people want?
The real problem with developing in .NET is Windows. Everything else is stellar. Hopefully at some point in the not so distant future Visual Studio will run on Linux and then we will all move to greener pastures.
Your uncool technologies might be cooler than you think. ;)
It makes sense for them to offer tooling for their own services but that doesn’t mean they don't support other software / services as well as their own.
I can still use MariaDB with Entity Framework and push changes to the schema with update-database.
Visual Studio has extension support so 3rd party devs can add to it because MS might not be the best people to build the tool for a 3rd party, the 3rd party might just well be.
AWS provide an extension for managing AWS though Visual Studio called AWS Toolkit which makes pushing code to lambda a breeze.
VS works great with other tools (i.e Oracle Db tools) with the same level of integration !
The misconception is the problem, and MS should work on that ...
That's the reason I'm phasing out Visual Studio and phase in VSCode. I mess some features but it's a much more open and leaner tool.
Or people choose what works for them? Or they have to deal with sunk costs?
> They just swallow anything which so-called MVPs and conference presenters force them down the throat, primarily Azure which is by all measures inferior to the other two and they don't even know.
Please get off that high horse of yours before you hurt yourself. Nobody is forcing anything down anyone's throat. Your argument is so petty. People go to microsoft-centric conferences and listen to MVPs for microsoft-centric products and talks. It's like you complaining that a linux conference or talk doesn't talk about windows products and hence are forcing inferior linux products down their throats. What do you expect when you go to a mysql conference? Talks about SQL Server?
> Visual Studio is littered with SQL server and Azure tools which doesn't even make sense.
A significant portion of windows development involves SQL Server and Azure interaction? You do realize that much of what is in Visual Studio is a result of customer surveys and usage data ( telemetrics )?
This is why I cringe at fanboyism. Whether it is F#, Ruby, Rust, etc. People get so irrational and consume by zealotry.
That's a really weird thing to say, by what measures do you mean? In terms of market share, they are AWS, then Azure, then a big gap, then Google. In terms of maturity of the managed services, it's Azure, then AWS, then Google. Google in particular has a lot of "tickbox" features just to say they have them but when you drill down they are far more basic than either Azure or AWS.
Visual Studio is littered with SQL server and Azure tools which doesn't even make sense
Why doesn't it make sense? I use those tools regularly! The VS team, using their own product to develop their product, is generally super responsive to the user community.
The web portal is the best example, you can't use that with just one browser. Some things only works in Chrome, others are only broken in Chrome.