Microsoft Wants Ideas for Visual Studio 2012

| 24 Comments | No TrackBacks

Lisa Feigenbaum says the Visual Studio team at Microsoft is asking for ideas for Visual Studio 2012 (the version after the now cast-in-plaster VS 2010). I did a search against my archive of suggestions I made awhile ago (okay, in 2006) to see which of the issues I raised then have been addressed and which make sense to be addressed in some future version. Ideally, Lisa will respond to say “Oh, sure. Those have all (or mostly) been addressed in the 2010 version.” but I’m an optimist.

Here’s the list. Consider that the Data Access team is at least influenced by the Visual Studio team and while these are not necessarily “language” issues per-say, they are developer issues that have yet to be addressed:

Where the Visual Studio Team Should Be Focused (IMHO)

  • Help developers access existing relational database data sources. By their own admission, Microsoft tells us that most (by far) of the data access done today is against relational data stores. In addition most shops still use stored procedures to protect access, improve query performance and manage large, complex projects. Over the last 15-20 years the industry has embraced relational data sources and built infrastructure to support them, train developers and DBAs to use and manage them and spent countless billions of dollars doing so. Any strategy that does not leverage this considerable investment is a non-starter.
  • Leverage existing SQL Views, Indexed Views and Updatable Views. Views are also used to “map” the data so focused applications can “see” and update data that they need. SQL Server has a number of innovations in this area that make this metaphor even more powerful. In a general sense, SQL Server has implemented a number of exiting new features—not all of which are leveraged behind the scenes by ADO.
  • Working with stored procedures, parameters and parameter value validation—this is far more than simple type checking. The vast majority of SQL Server, Oracle and DB2 developers use stored procedures to execute the complex sets of statements required to fetch (and more importantly) update the database. Nothing we have seen in Visual Studio so far shows how updates will post data changes to multiple tables in a single transacted operation. Not only do these stored procedures update tables, but they return informational messages to report on “exceptions” that are not errors, they protect the data in sophisticated ways, implement business rules, protect referential integrity and much, much more. Any ADO.NET layer should be aware of these operations and their complexity. Anything the tools can do to make these easier to write (and write correctly) makes sense.
  • The Data Source configuration wizard that currently generates the TableAdapter is still incomplete. It does not give the developer an opportunity to focus the query on a parameter-driven subset of the data because it still does not ask for a WHERE clause—it should.
  • ADO should fire an event when an improperly typed (or ranged) value is assigned to a Parameter. As it is, we don’t know that a Parameter Value is incorrect until the query is executed. This wastes a round trip and requires far more complex exception handling.
  • ADO.NET should fire an event when a value does not match the business rule(s) defined for a Parameter. As it is, developers have to design, code and implement their own.
  • ADO.NET should support definition of business rules on server-side columns. These could be a simple as a Regular Expression but should include (at a minimum max, min, default, mask (a regex), and user-definable rules. Okay, these are already defined for T‑SQL (they are implemented as Rules and Constraints) but not for other data sources. Unfortunately, TSQL rules are deprecated and Constraints do not apply to an aliased type (UDT)—just specific columns—a move in the wrong direction. These same business rules should be mapped (or mapable) to UI element restrictors on the client/middle tier or otherwise exposed via ADO.NET. This should not require that the developer or DBA redesign their existing databases or schema—simply add additional metadata to the existing schema.
  • ADO.NET and Visual Studio should help manage rights, schemas and ownership. IT managers and DBAs spend considerable time to prevent unauthorized access to the data and the database schema. Developers need to have gated access to the data with cooperation of the DBA. Any tool that’s built by the ADO.NET team should deal with the rights of the objects at all levels.
  • ADO.NET and the Visual Studio interfaces still can’t update hierarchical rowsets. This needs to be addressed.
  • Working with data schema changes and keeping application interfaces in sync. While some versions of VS can make changes to the schema, these are not propagated to the applications. Currently, there is no mechanism that records the dependencies between applications and the stored procedures or table schema upon which they depend. This means when the schema changes (as it always does), developers must repeat the tedious (and error-prone) drag-and-drop operations to resync the generated code with the schema. Figure out how to automatically morph deployed applications to deal with data schema changes. Identify applications that can’t be morphed automatically. Help DBAs understand the impact of their changes.
  • Work more effectively with business rules and client/middle-tier validation.
  • Provide additional data source device drivers – flat file, delimited file, CSV. The Framework includes all the needed functionality to access unstructured and semi-structured files. There should be a lightweight (as in NON-JET) CSV providers that work with both 32-bit and 64-bit platforms.
  • Figure out how to tell applications (and developers) why operations don’t work. This is especially true for connecting. Generic error messages don’t really help.
  • Figure out how to let ADO.NET to get out of the way and let developers execute SQL syntax without having it wrapped in sp_execute that prevents some SQL to even execute.
  • CommandBehavior should be added to all of the DataReader methods that require a connection. As it is, if I open a connection in a function that executes a non-rowset-returning query (ExecuteNoQuery, ExecuteScalar, etc.) there is a chance that the connection is orphaned.
  • Fix bugs. There are still a wealth of serious bugs that need to be fixed before a single new feature is given manpower. Many of these issues must be fixed even if you do have to step the framework.

As I see it, there is so much work to be done on ADO.NET, that branching off and defocusing some of the brightest minds in the group just to appease a noisy minority (the OR Mapping fans) does not make sense. I almost seems like a way to justify their existence. Based on what I have heard, there is not a consensus between the product teams (Visual Studio, SQL Server and ADO.NET to name a few) on the Entity Framework implementation(s) being proposed. I know there is a need to provide ORM to the industry but those that are crying for it have several established, functional (and as I hear it) far superior products from which to choose.

The EF might be needed by some subset of developers, but mainstream developers need support too for existing architectures.


No TrackBacks

TrackBack URL:


Bill, you are about the only commentator on the web that has summarized the real world problems for business software development accurately and the real problems with VS. Where and how can we make MSFT understand these issues?

The basic assumption that a single table contains a complete entity definition and that we want all rows is very frustrating when designing robust business apps that need to last for 20 years and have millions of table rows.

We need to also add an objection to the tiny dialog boxes in SQL Server where you can't read anything and can't scroll or resize them. How much longer do we have to put up with this nonsense.

I appreciate the feedback...
I also dislike the tiny tool icons, tiny fonts and other user interfaces written by kids with great eyesight. I'll pass on your comments.

I'm a part-time developer/entrepreneur who taught myself sql and vba and, and have been trying to keep up with the changes while I try to run my daycare business. Now I'm trying to learn WPF, WCF, EF (the new "effin'" technologies as I like to say:)) all at once to try to stay current. I've invested many hours reading and experimenting and have hit the wall on EF when it comes to updating simple records involved in relationships. And without even going there, I suspect they haven't figured out how to implement this in an N-Tier environment. Anyway, it's comforting to find out that you don't endorse EF. I feel validated! Do you endorse any other OR mapping technologies? Or should I stick with datasets for a while? I've downloaded LLBLGen Pro (an OR mapper), but it has it's own learning curve. Thanks

Ah, I have not found the burning need to let some other application decide how I structure my database but there are those out there that seem to think this is important. That said, I'm a firm believer in KISS. I would stick with DataSets/Stored Procedures and the like. Of course, I'm not an Object Mapper expert so take that with a grain of salt. I do work with a number of companies that don't feel the need for the EF or mapping and until just recently virtually no-one was using them at all and still managing to build efficient applications (somehow).

What if you visual studio provide much more automation in developement since now vs has workflow foundation what if it automaticaly create the scratch for the services and UI in futrure people will not look in to hard core programming so if vs 2012 can provide some featurs where deveopers can quikly deveope applications using rules and tasks or something.. I think its better to provide an application frame work where users can customize things and build the application may be something similior to sharepoint but some thing much more advance and user frndly that MOSS

What if applications could be constructed like pre-fab houses? I expect that many (if not most) application could. The problem as I see it, if the construction workers need to have a PhD in programming, it's not going to help many developers who have skills but are not rocket scientists.

I have some good and some crazy ideas for Visual Studio 2012 on my blog :) "Google It" being one of the most popular features.

Here's what I want!

1. Screen object provide properties for getting physical screen dimensions in centimeters and inches.
2. Refactor: Declare Method (from selection)
3. Refactor: Declare Explaining Variable (from selection)

Display the name of the member that is NULL!
When adding attributes
3. 4

I want to get paid $$$ by Microsoft to give them my idea's.... after all I have to pay them if I want to buy a license.

"A license (ultimate) for an idea" would be a proper statement for Microsoft to get my idea's

I don't get it. I always make a class that uses DbConnection and DbCommand, has a few SQL statements inside the functions, and calls ExecuteNonQuery, ExecuteReader, and ExecuteScalar. Then I make derived (re-used 50-line) classes that basically use the provider of the day, be it SQLCe, or Access, or whatever. And when I moved from #include <sql.h> to ADO.NET, it was just a matter of Googling the right function to stick my SQL statement into.

Stuff like EF changes so often that for me it's not worth keeping up with. I asked a contractor (who indiscrimiately uses the latest and greatest) how much time it would take if we changed our mind about which database provider to use. He says it would take a few days...enough said.

Would like feature similar to GhostDoc + some spell checker should also be included to check the spelling of user provided comment.

Please add a search box in the upper right corner that like in IE8 with an arrow to allow selecting the scope of the search (i.e. Project, Document, Entire Solution, etc)

Thanks for your hardwork!

easy way to create sql and database(of any type 2002-2011) connection from application path. and also give a easy buit-in setup compiler within studio.
for games, some special tools.
auto project cd burner.
mix photoshop, Flash and studio
allow to use flash titlebar, form, buttons etc.

How about the ability to seperate the classes automaticly when generating classes from LINQ-SQL, Entity Dataset etc.

One feature I would like to see is the elimination of circular dependencies. Surely by using XML files to store information about DLLs would solve this problem. I like to seperate my code files in a very granular way and every time I try I need to have a circular depenency between the DLL's. XML is a powerful tool. instead of referencing a particular DLL I think we should be referencing an XML file that contains all the relavent information.

Also. I read somewhere that microsoft was considering giving the ability to generate a database schema from c# code files. this would be a fantastic feature for me :)

Stability, stability, stability. If you build large scale applications with VS2008/VS2010 you will be aware of the many bugs that made it into RTM. i.e. Add Service Reference dialog bugs, XAML designer bugs/performance issues, etc. These bugs negatively impact developer productivity.

Yes we need more speed and stability in the new version. Loading/compiling multiple projects takes a lot of time.

If i want a new feature in VS 2012, I would love to have Code-Coverage functionality.

I want a few simple things:

1.) I want VS2012 to not be slower. My VS2010 takes 15 seconds to start when VS2008 takes 3.

2.) I want a UI that either doesn't have ugly colors, or gives you the ability to change them (I've used the color changing plugin, I still don't like the colors... especially things like missing borders on toolboxes, etc).

3.) The Intellisense takes 4 times as long to load with my VS2010 as VS2008. Why?! ;P

4.) The code editor box is fuzzy and harder to read than in previous versions of Visual Studio 2008. If I wanted to use a GUI package that was hard to read I'd have choosen Expression Studio.

5.) For the love of god, please, under no circumstances bring the Ribbon in. I've yet to meet a person in real life that actually likes it. Change for the sake of change helps no one.

/end rant

1.) Why Visual Studio 2008 can not work with .Net Framework 4. It is a new .NET hell. We pay for Visual Studio 2008 and we can't use a .Net 4. I want to have this possibility in a new version. 2.) Visual Studio 6, 2002, 2003, 2005, 2008 can work with ActiveX. I think Visual Studio 2012 should work with ActiveX also.
3.) I don't want to have a ribbon or i should have possibility to remove it from IDE. Software for programmers is a proffesional software, and everybody knows where everything is on the menu. The ribbon takes a lot of place.
4.) The best Visual Studio which i ever had was Viusal Studio 6 (except some slow controls - i.e mschart)

In .Net when we deploy any application, it is mandatory that .NET framework needs to be installed on that machine on which we are deploying the application. My suggestion is that if we remove this minimum requirement and instead of deploying the complete framework, we should deploy few dll's only (as we used to do for visual Basic 6) in VS 2012.

I would really like visual 2012 to have full support for the .net compact framework like Vs2008 does.


I realy would like some better controls.
A richtextbox with table support for example.

And when the 'Object not set to an instance of an object' in runtime. Please make it possible to show the name of the variable to the user.



World of business is very crucial nowadays. In order to engage on this kind of matter you must have the intellect in choosing for the best plan on your management. The business trends are high, because the firms exist just anywhere else. so the number of competitors are also increasing.

Tests are also very important. In C#, you can write test programs with NUnit. Why not have a test framework for all Microsoft languages included in Visual Studio 2012 ?
For example why not create or promote a test framework for the future winc++ IDE, which should be independant of the .Net framework, to be abble to write test programs in C++ ?

Such tool should test GUI as well as batch programs.

It should also be necessary to promote a profiling tool, to detect memory leaks for example, to help developpers to optimize their code properly.

On the last hand, automatic completion and Visual Studio performances should be optimized in terms of response time for example.

VS 2012 needs to may it easier to work with ini files

Leave a comment


Powered by Movable Type 4.38

About this Entry

This page contains a single entry by William Vaughn published on February 10, 2009 11:14 AM.

How to Get Your Books To Sell was the previous entry in this blog.

Slow Query Response? is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.