Google
 

April 26, 2008

DevTeach Comes to Toronto

My next gig is DevTeach Toronto where I'm giving my popular workshop "Pragmatic Application Design". This series of sessions is designed to take a developer, architect or database administrator through the fundamentals and many of the more technical details and best practices used when designing applications using the .NET Framework, Visual Studio and SQL Server. This workshop is not about future or expected versions of Visual Studio or the unreleased tools and platforms you hear so much about—it’s about how to best use the existing, stable and trusted versions of the .NET Framework, Visual Studio and SQL Server. The sessions talk about real-world and practical solutions to the problems most companies face—especially smaller companies or smaller departments in larger companies that have to interface with existing data stores of all shapes and sizes.

This session includes a copy of my latest book "Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)"

For more reasons...

Continue reading "DevTeach Comes to Toronto " »

December 04, 2007

Improving Personal Computer Systems Performance

Improving Personal Computer System Performance

So, you’ve reached the conclusion that your laptop or desktop personal computer is not running as fast as the day you bought it. There are a number of folks out there that are trying to capitalize on this rather common complaint. I’m sure you’ll find lots of sites that offer software downloads (usually free) that can “radically improve system performance” or make equally unbelievable claims. Folks looking for ways to save money on gas are often tempted with equally outrageous claims made by those selling gadgets that fit over your carburetor or magic fluids to dump into your gas tank. Most of us recognize these products as bogus because we understand car engines or that you can’t increase your car’s stability by putting a bowling ball in the trunk.

To better understand how to make your computer as fast as it can be, it’s important to know how a computer works and what makes it run more slowly.

Continue reading "Improving Personal Computer Systems Performance" »

August 20, 2007

Visual Studio 2010 Wish List

I just started working with Orcas Beta 2 again after a long hiatus so I am finding new issues all the time. There are so many UI issues I’ve mentioned over the years that are still not addressed. Off the top of my head these include (but are not limited to):

• Auto “imports” for object references as is done in C#.
• Extensible New constructors for those cases where the new constructor does not include the right set of options. These extensions should have a mechanism to be automatically loaded when Visual Studio starts.
• The ability to insert SQL directly into a text string in the code editor. I’ve been asking for this for years with still no change.
• The ability to insert a prompted provider-specific Connection String directly into the new Connection constructor. This is new—an idea that just came to me. Given the number of people still having problems building Connection Strings and how much UI is already built to do this, it seems to me that it would be possible to right-click and let one insert the results of the Connection dialog editor.
• I would like to see “smarter” intellisense that does not show properties, options, events etc. for objects where the class does not support them. Case in point: SqlCe namespace does not support stored procedures, but it appears in the list of available options in the CommandType intellisense.
• Spell-check for all string literals. Every person who has shipped an application only to discover that they misspelled a few critical words knows why this is needed.
• Auto-hookup in the Data Source/TableAdapter paradigm for many-to-many hierarchical data. One-to-many seems to be nailed down except for use of SPs and parameter-based queries—these require quite a bit of extra code. Remember folks, addressing an entire table is not how you build a scalable application (unless it’s for the church roster).
• Default behavior of the Data Source config wizard needs to disable choice of “Tables”, “Views”… That is, developers should have to manually choose all of the tables in a database to be used to create ST TableAdapters—not just check one box. 90% of the time this is just wrong. Don’t help inexperienced developers make mistakes from the beginning.
• When creating a TableAdapter, one should be permitted to provide a Query-builder interface to limit the rows during initial configuration instead of having to go back and reconfigure. If not QB, then some interface to help construct the WHERE clause. Returning all rows from a table (the default behavior) is a very poor practice. Again, help them build correct applications from the start.
• When using D&D to display data in a DataGridView (thanks for not changing the name again), those columns whose control designation is “none” should not be displayed. For example, TimeStamp columns are automatically marked as None. This works fine for discreet controls. This is just a bug that should have been fixed for some time.
• Better mechanisms need to be added to help developers build hierarchical one-to-one, one-to-many and many-to-many UI-based applications—with and without direct table access (as when using stored procedures).
• We still don’t have a clearly defined mechanism to refresh the generated code once changes are made to the underlying schema. Give us a “regenerate code” button that (at least tries) to walk the referenced data and rebuild the TableAdapter classes.
• Why can’t I “join” two Data Source DataSets by dragging a table from one to the other?
• For consistency, the Data Sources window should be listed under the top View menu.
• The project references pick list has not been fixed since the first launch despite being mentioned as many times as an issue. Due to the (to be nice) “challenged” design (the UI looks like a throwback to VB2), and the fact that many Component Names are so long, you can’t tell one from another. This is UI 101 and should have been fixed long ago. IMHO it should have a filter setting to help locate references as you do with the Toolbox customization dialog (which is slow, but nicely done).
• The Add New Item dialog needs to have a simple import facility to permit developer to import RDL reports into a project.
• Refactoring should be built in—not added on.

Perhaps they would be fixed by the version after 2008. I'm not holding my breath.

Bill

Visual Studio 2008 -- Still Has Not Addressed Basic Issues

By default, the TableAdapter/Data Source drag-and-drop paradigm generates some fairly clumsy code to bind rowsets to the UI. As it is, the wizards (more like Dark Lords) encourage developers to select all columns from a base table with no WHERE clause. The developers is given no opportunity to do anything to limit the rows returned—not until they manually reconfigure the queries or use SPs using the TableAdapter designer. The wizards repeat the same table-based query for each table selected in the Data Source. If the developer blinks (does not know better or has watched one of the demos we’ve all seen) and chooses “Tables” in the initial dialogs, a ST TableAdapter is created for each and every table in the database which can add thousands of lines of useless code to the application. Microsoft needs to disable this option.

Continue reading "Visual Studio 2008 -- Still Has Not Addressed Basic Issues" »

August 14, 2007

User Access Security in Vista--A Terrible Mistake

This entire security paradigm makes a grossly invalid assumption: ordinary people actually know what to trust, that they actually know what they are doing and know how to protect themselves. The vast majority of consumers treat their systems like a trusted home appliance. They assume that it should work and keep working as long as it's plugged in and they pay their broadband bill. They have no clue about how their systems are subject to attack from all sides--they simply trust Microsoft to protect them. Putting the responsibility for their own security entirely in their hands is a truly ludicrous idea.

Continue reading "User Access Security in Vista--A Terrible Mistake" »

July 16, 2007

Vista Gets it Right "Can't find NTLDR"

I used the IBM/Lenovo Rescue and Recovery to restore my hard drive (to solve another Vista issue) only to discover that the NTLDR could not be found. After trying FDISK /mbr, Acronis' Fix MBR CD and a witches brew of other utilities I could not restore the boot record and files needed to reboot Vista.

What did work in the end? I used Vista's Repair utilities. Boot with the Vista DVD, ask for Repair My Computer and let it try to fix the boot files issue. Okay, this did not work the first time, but on the second try, it launched another window of utilities that was able to repair it.

Thanks Microsoft. You got this one right.

June 02, 2007

What Should a (Very) Introductory Visual Basic Course Contain?

One of the "inside" aliases that I monitor posed the question: What should a (very) introductory Visual Basic .NET course (for college students) contain? At least one response went into some detail that (IMHO) missed what students getting started as programmers really need to know.
My answer:
____________________________________________________________________________________________
I might start (a very introductory course) in much the same way as I did when I taught CS101 to college students. Let’s assume, that these students know these foundational concepts—what’s a CPU, what’s RAM, disk, and the rest. Can we assume that these students are going to need know how to solve business problems with a computer program they have written themselves—as opposed to doing it with ledgers, 3x5 cards or Excel?

To do so they will need to know how to:
• Learn what needs to be done. This might mean interviewing customers those that will use the application and understanding the problem they are trying to solve. Too many developers come up with a solution to problems that don’t exist or don’t address the customer’s problems.
• Learn how to design before coding.

Continue reading "What Should a (Very) Introductory Visual Basic Course Contain?" »

Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.2

Portions Copyright© 2006, 2007
Beta V Corporation
--All rights reserved.
Photographs and artwork by William R. Vaughn except where noted.