Wednesday, December 28, 2016
Greg Young coins ‘CQRS’, immediately calls it an anti-pattern

This is completely a joke, of course, but was my immediate thought when reading this somewhat old ‘news’ story.

posted @ Wednesday, December 28, 2016 11:40 PM | Feedback (0)
Thursday, December 22, 2016
Coding standards are bad aka learning the wrong lession

So, Rocky reflected on coding standards, and ended up here:

This was the point where I had my first professional developer epiphany. Yes, it is truly painful to adapt to the idea of living within strict coding and style guidelines. But the alternative is so much worse!

Ever since that experience I insist on consistency of coding standards and styles within each project (or enterprise) where I work. And even if I think some choices (like 2 spaces after each tab) are really, really, really stupid, I'll use and vehemently support that choice.

Um, no.

There will always be exceptions, since such is life, but otherwise, on any codebase of any significance, with any number of contributors over any number of years, the need to enforce coding standards or styles is wasted effort, and counter productive.

I would actually extend this point even more radically.  In various projects I’ve worked on, there have been (to use what should be a recognizable example) many different data access ‘methods’: stored procedures, inline SQL, ADO.NET, LINQ to SQL, Entity Framework, etc. 

On one level, this is insane, of course.  However, it is also perfectly manageable.  If you know anything about .NET and have been programming for even more than a few years, you can program using all of these, and can move back and forth between them with little effort.

That is to say, on any code base that has existed over any period of time, different ways of programming have been used by different developers over time.  To the extent that you do actually follow a pattern, that’s great (so, for instance, even though I prefer something like Entity Framework, if the module I’m working on uses stored procedures, I’ll default to that), but thinking that enforcing a style (like 2 spaces after each tab) is a good idea is just stupid. 

You might as well enforce the types of socks your development team wears.

posted @ Thursday, December 22, 2016 2:36 PM | Feedback (0)
Tuesday, November 29, 2016
Repairing Xamarin after uninstalling Visual Studio 2017 RC

In a previous post I mentioned that uninstalling Visual Studio 2017 RC broke any existing Xamarin projects, removed the templates, etc. and that I hadn’t figured out how to fix it.

Here’s how you fix it:

Go the Xamarin web site and go to the download page.  Annoyingly enter in your contact information for the 17th time, and then where it asks you if you already have Visual Studio installed, select ‘no’.  Download the file, execute it, and it will reset things (it doesn’t actually appear to download anything that I could tell, but it’s hard to tell). 

When you then load a Xamarin project, it will tell you an update is available, etc.  You should be good to go.

posted @ Tuesday, November 29, 2016 10:03 AM | Feedback (0)
Friday, November 25, 2016
Uninstalling Visual Studio 2017 RC appears to have broken Xamarin

In a previous post, I mentioned some difficulties with the latest Visual Studio 2017 RC, and how uninstalling it, plus installing the latest Typescript release, appeared to have minimized the damage.

Unfortunately, I apparently have spoken too soon, as I discovered today that an Android app project is broken, showing the project as being incompatible, and there are no longer any Xamarin project templates to be had.  Even worse, there doesn’t appear to be a ‘repair’ option, so I’ve yet to figure out how to fix Xamarin.

Again, my fault for blanket installing without testing, but still very annoying.

posted @ Friday, November 25, 2016 9:56 PM | Feedback (0)
Scaffold-DbContext doesn’t appear to work with EF Core 1.1

Are you surprised?  Me either.

Given this NuGet Package Console command:

Scaffold-DbContext -Connection "data source=MyServer;initial catalog=MyDb;integrated security=True" -Provider "Microsoft.EntityFrameworkCore.SqlServer"

where I’ve obviously replace my actual server name and database name, one gets this error:

Could not load file or assembly 'System.Data.SqlClient, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

Well, that’s because EF Core 1.1 along with the SqlServer package requires SqlClient version 4.3.0


posted @ Friday, November 25, 2016 11:42 AM | Feedback (0)
Sunday, November 20, 2016
Be wary of Visual Studio 2017 RC

I made the mistake of installing this on multiple machines instead of my usual “install on one and check it out fairly thoroughly” routine.  I guess I had been lulled into somewhat of a sense of security with the beta/RC process for Visual Studio 2015, in that I didn’t think that installing 17 RC would break important parts of 15 functionality.

To wit, simply installing 17 RC would break some .NET Core web apps inside Visual Studio 2015, even if I didn’t try to open/upgrade them in the new software.

Various errors included:

  • the following error occurred attempting to run the project model server process (1.0.0-preview3-004056), unable to start process.
  • tsc.exe exited with code 1
  • project file could not be found

And remember, this is trying to run in old software, not the new software.

Luckily, simply uninstalling Microsoft Visual Studio 2017 through Control Panel’s Program and Features, and then installing the newest Typescript exe from here fixed the issue, instead of requiring me to repave multiple machines and weeping copiously.


posted @ Sunday, November 20, 2016 7:24 PM | Feedback (0)
Sunday, October 23, 2016
Please don’t code this way….

“Having all clients share the same interface allow them to be hot-swappable at run-time without code changes”

posted @ Sunday, October 23, 2016 8:35 AM | Feedback (0)
Wednesday, October 19, 2016
C# Programming in Excel: To delete a worksheet, make it visible

Is programming in Excel better or worse than programming Sharepoint?

Anyhoo, I was trying to merge 5 single worksheet excel spreadsheets into a new spreadsheet, and then deleting the blank worksheet created when you create the new spreadsheet.

But when calling delete on it, I would get one of those fantastic COM errors you get when programming like it’s 1989.  I tried many different things before realizing:

app.Visible = true;

would do the trick (I made it invisible because it is a server side process).


posted @ Wednesday, October 19, 2016 4:24 PM | Feedback (0)
This is why I don’t like RavenDB’s ‘Safe by Default’

Daily WTF.

Ayende would call this a feature.

posted @ Wednesday, October 19, 2016 9:18 AM | Feedback (0)
Monday, October 17, 2016
Studies show TDD doesn’t work

Of course, anyone who put any thought into it already knew this.

Did I say that obnoxiously enough?  Nah.

Anyhoo, it is no surprise that someone says in the comments “Well, they didn’t do TDD right.”  That’s always the response.

Translation: “If you are a good developer, you do good development.”

Yep, thanks.

posted @ Monday, October 17, 2016 10:17 AM | Feedback (0)