Back when I started as a full-time software engineer in the early '90s, it was the beginning of an era when software engineering was about to explode and get easier. What language led this charge? It was Visual Basic (VB), first released in 1991. When Microsoft .NET was released in 2002, there were more engineers programming in VB, than every other language combined.
Why was VB so popular? It was because of its components' design and Rapid Application Development (RAD) to quickly build applications … a lot quicker. The rumor, I heard, was that Bill Gates held up the first release so that VBX’s (drag and drop UI components) could be added. That one feature made it so much easier to develop UI over other languages available at the time. Actually, this drag and drop UI design made its way into ASP in the '90s and then later to most UI development in Microsoft .NET and other competing languages and frameworks.
As a VB developer, I always felt like the redheaded stepchild. We were always looked down upon from other developers (especially C++) and still are. The biggest reason was the word “basic” in its name. Everyone thought it was just a toy language … boy, were they wrong. I personally worked for many companies that we could have not put out applications as fast as we did, with a few developers, if it weren’t for VB. Actually, at one company, a C++ lead developer came in (after our first release in VB) and said that much of the UI had to be changed to C++. This one decision delayed the next release over six months with no added UI features. Now that the new version of VB.NET came out in 2015, I still believe it is the fastest way to build UI with Microsoft .NET framework.
Unfortunately, for at least five years, I have been seeing a trend at Microsoft going in the opposite direction, away from RAD. This trend really started when WPF (Windows Presentation Foundation) was released in 2006. WPF had very few drag and drop components when released and when Silverlight was released in 2007, it was even worse. Things started to get a lot harder in 2009 when ASP.NET MVC was released since it does not allow the use of drag and drop UI development at all. A few years ago, I mentioned this to a panel of Microsoft project managers and they all looked at me as if I were crazy. They forgot that the “normal” developers are not like them or Microsoft MVPs. Living in the Microsoft “bubble” doesn’t help them think the same way that the most developers do.
With the release of .NET 4.6.2 and Visual Studio 2015, things are continuing to degrade with the removal of the visual design surface for Entity Framework, the removal of other project types, tooling not up to par or missing completely, and more. Other things like JSON replacing XML for configuration files is not making things easier either. It seems like other easy-to-use frameworks such as LightSwitch, WCF DataServices, Dynamic Data Entities Web Sites, RIA Services, and Workflow seem to be dying on the vine at Microsoft. The wizard to setup EntityDataSource for Entity Framework 6 does not work anymore. Other Visual Studio features have quietly disappeared like the CSS editor, database and architecture projects are gone, ASP.NET WebSite Administration tool is gone and more.
After I started writing this, ASP.NET Core was released which adds a brand new, very high level of complexity to building websites. Also, .NET Core assemblies will not reference correctly in Visual Studio from a .NET 4.6.1 assembly. For years, the .NET Framework team has guaranteed us language parity but this is not true with .NET Core (so far). The only thing I can think of is that Microsoft is trying to attract the open source community and is catering towards them, not the productivity of development teams.
When Microsoft .NET was released, there were only a few frameworks that we needed to know. They were Windows apps and web apps including web services. With the addition of tablet, phone, and cloud development, apps are getting a lot harder to design. When I am dreaming up a new application, I often go into architecture paralysis due to all the choices available in the Microsoft ecosystem. I try to keep the future in mind so I am often left wondering if I am making the correct decision. Again, the lack of guidance from Microsoft does not make this easy on us.
So, what needs to happen? Someone or a group of people at Microsoft needs to have an overall view of all development frameworks that includes SQL Server, SharePoint, Office, and Azure. Their number one goal should be to make development as easy as possible for development teams. Go back to more drag-n-drop/ plug-n-play features and visual design surfaces that also allow the ability for finer grain control if developers need it. This should also include architecture guidelines for each major application type. In addition, their creed should never change in the future. Let's face it, most frameworks have already been written. As developers and architects, we just glue these frameworks together and apply the logic needed for the appropriate industry.
The teams need to release and support updates also at the same time. Waiting around for over six months for Azure to support the latest .NET framework version is not acceptable. Documentation at Microsoft has never been great but it has gotten a lot worse lately… if the documentation even exists at all.
This is my dream for the future of software development. What is your dream?
Join the conversation! Your thoughts help the community grow.
Sign in to leave a comment
It is the same account you read, post and publish with — and you will come straight back to this page.

Adrien TorrisPosted Jan 12, 2017, 3:25 AM
I don't agree. The softwares are more complex to develop than 15 years ago but it's not the fact of Microsoft. There are more and more hardware devices, who manage more and more things and changing so rapidly. I really think Microsoft does the rights things for a couple of years, and I think ASP.NET Core is so powerfull, flexible and pleasant to develop with. You can't ask Microsoft to publish a tool who can build, with few drag'n'drop, a software accessible on windows/linux/freebox/connected watch/ipod/ipad/iphone/windows phone and connected clothes, you just can't. A tool like this just never gonna happen, we have to handle with it. And ASP.NET Core is a good start.
Manas MohapatraPosted Jan 6, 2017, 2:07 AM
I agree. Microsoft is changing so rapidly with Visual Studio, Architecture which creates complexity for developers..
NehaPosted Jan 5, 2017, 5:38 AM
Nice one.............................................
Hagashen NaiduPosted Jan 5, 2017, 4:01 AM
Couldn't agree more with article and glad to see how many others are in agreement. This has been the driving force behind Warewolf. They are constantly looking at all the difficult and boiler plate code that developers have to deal with and replacing it with drag and drop components onto a visual design surface. Not to mention it's open source.
Nigel FernandesPosted Jan 4, 2017, 10:16 PM
Yes totally Agree !!!! Everyone seems to want to add to many things to simple projects and create too many complications .. I have seen developers add unwanted layers of code just because someone online has said its the right thing, even though its of no use.
Robert BarnesPosted Jan 4, 2017, 5:16 PM
I completely agree. The major issue that all developers face is complexity, but only a tiny fraction of this complexity is related to complexity of the business problem that they're solving, more than 99% is related to the complexity of their technology. To quote Einstein, "Things should be as simple as possible (but no simpler)". It's a shame that the VB language has been side lined in favour of more complex languages because some are too stupid to realise "Basic" means "not unnecessarily complex", not "only suitable for basic tasks" .
Nitesh KejriwalPosted Jan 4, 2017, 2:26 PM
Glad, someone spoke about it. I completely agree with the article.
Mahesh ChandPosted Jan 4, 2017, 11:39 AM
But I think software complexity will grow in coming years and the reason is very simple. Software is enabled of business and mostly hardware. Hardware is changing so rapidly. There are more companies building new device than ever before. Means new devices, new software need, no standards, more mess, more changes, more breaking-stuff, and more mess. Trouble has just began.
Mahesh ChandPosted Jan 4, 2017, 11:28 AM
Good article and very valid points. I am from a C, C++, VC++, MFC, ATL, VB, Delphi, WinForms, WPF, and UWP background and you can tell, I live on Visual Studio and its tools. I remember, I used Architecture and Database projects in many of my projects. One day, they just disappeared from Visual Studio. But I have to agree with "Kdc" 's previous comments. Not only MS wanted to push open source but they also wanted to capture open-source developers who are more like "typers", rather than, drag-droppers. Recent mobile developed needs, the rise of JavaScript libraries, and Web APIs have left MS no choice to but give them something. Did they abandoned us RAD developers? Perhaps. But if you look at today, there is less client applications and more mobile apps happening and trends are growing. Microsoft technologies won't/can't support mobile device. Entire Microsoft software tools designed work work on Windows messaging and OS architecture. HTML/JavaScript lives in Browsers. Microsoft has XAML/Xamarin for us RAD developers to build mobile apps :) and UWP to build Windows 10 apps. I believe UWP is the closest what we get and I hope that need of Windows 10/UWP will grow. Keep in mind, UWP is coming as a part of .NET Core and open source. Cheers!
Kdc LlcPosted Jan 4, 2017, 8:36 AM
It is well written article. As much as I hate the change myself, what is taking place now is due to the lost market share by Microsoft in the recent years. The wave of tools without drag and drop functionanilty is based on the Open Source trends which accomodate new developer wave these developer never used any of the Microsoft technolgoies of the past, so it make sense.In light of the open source businesses at large are adjusting as well.
ArchiePosted Jan 4, 2017, 7:13 AM
It's good to see that I am not alone in seeing this trend. I create tools for users that do not write code for a living. In order to do this I need to heavily rely on the WinForms drag and drop ability along with VB. I feel like my WinForm controls are in the stone age. If I move to WPF then I lose 90% of my users. Maybe Microsoft's focus on the open source community has made them lose sight of the community that preferred RAD.
Mark JarzPosted Jan 4, 2017, 2:36 AM
Completely Agree. Software development in general and particularly in the Microsoft world has been heading in the wrong direction. More complexity instead of simplicity, longer time to develop rather than shorter and incompatibility for the sake of change. And no good architectual guidance. 50% of development time is spent getting around things that should work and don't. You only need to look at how hard it is to move data from the DB to the user and back again to know that something is wrong. It all started going wrong when they stabbed VB6 development in the back.
BettyPosted Jan 3, 2017, 3:51 PM
If they can make designers that deal directly with the low level code then I have little issue. However I doubt they can, personally I don't want to be forced to use a designer or deal with things like edmx merge hell.
bobtaborPosted Jan 3, 2017, 2:04 PM
Hear hear! Completely agree. I just had to scale back from an ASP.NET MVC Core 1.0 based app to MVC 5 because the (Preview) VSTS / Azure Websites Deployment stuff is broken for Core. And that's just anecdotal. It's. *Always*. Something.