The World According to Marc
-
Database Diagrams in Yukon
Ming mentioned this a while back (June 29th) and unfortunately I didn't notice it until now. I've had a few minutes to play with Yukon (SQL Server 2005 for those way behind in the program) and most of that time was spent hunting for the query diagram tools in the new SQL Server UI. But alas, as Ming stated, it isn't there. To quote from Ming's blog: "Database diagram (it was official cut in VS2005, but who knows, we might be asked to put it back.) -- a diagram to lay out the relationship within the database tables/views/".
Well let the guys know then that they have been official asked. I think Paul Murphy may have said it best in Ming's comments: "Someone should be beaten and flogged for cutting database diagrams from the Yukon/Whidbey toolset.”. I could not agree more.
I could come up with a thousand reasons why this shouldn't have been removed, the least of which being the amount of typing the diagram tool saves me. But they all see so painfully obvious that I can't imagine they were not brought up at meetings inside Microsoft. So this leaves me wondering, did they really have a good reason to remove this (puppies in China will die if they built it for example) or did they just have a collective brain fart when this decision was made?
Or maybe I'm wrong and it is there and Ming never said this and this is all a nightmare and I'll soon wake up and have a beer way to early in the morning in order to toast the dream being over…
-
MSDTC with Windows XP SP2
Much thanks to Florin Lazar for posting how to fix MSDTC after install SP2 (http://weblogs.asp.net/florinlazar/archive/2004/06/18/159127.aspx). So far this is the only issue I've run into after installing SP2 (knock on wood).
-
Primal Scream
Every have one of those days were it seems like the world is secretly trying to scramble your brains? I'm having one today.For some reason this statement compiles just fine:if(anyYearCheck.Checked = false && (1 > 2))
{
}
Did you notice the problem? Yeah? Well I didn't.For those like me who didn't catch it, here is the deal; "Checked = false" doesn't check the value of Checked, it sets the value of Checked. So rather than checking for false I was setting it to false. This caused some rather intricate four-letter-word sentences to be expunged by yours truly.What I find odd is that I'm positive that statements like this have cause compiler errors in the past. So like I said, the world must be secretly out to get me.UPDATED: My code sample was wrong. This error requires the && to be included in the if statement. -
And Another Thing...
While I'm updating wish-lists I'd like to add something to this list: more control over web reference proxy generation. I understand that this may in fact be solved by VS 2005's new web services tools, but on the off chance that it isn't I'd like to get this out there.
Our latest application uses web services for the entire data layer. This means that 90% of the business logic and all of the database communication is handled by a web service (really it is handled by a number of web services due to the size of the application).
One of the issues we've run into is in managing this. We want to maintain a single assembly that houses all of the web references and associated helper classes. With a large number of class libraries and executables this saves us a ton of time and it system actually works pretty well. We have AppSoap.dll that holds the web references and a few other classes and this is in turn referenced by a dozen or so other assemblies.
But there is one issue, the proxy generate builds the reference.cs and gives a number of items an “Internal” protection level. This means that while we can reference <namespace>.<typed dataset>.<typed datatable> we cannot access the column names in that dataset.
The sort of it: either keep it all public so I can reference my web services anywhere I need to or give me control over it. Right now I have to search and replace “Internal” with “Public” every time I update the web service. Yuk...
-
Updated Wish-List
Now that we are half-way through 2004, I thought I would take a look back at my New Year Wish-List and see how far we have come.
· To have the C# team come to the realization that Edit & Continue is in fact not the devils playground. Maybe they don’t make typos but I sure do (some 10 in the post alone I bet). Having to restart the entire application to fix a single letter is a massive productivity killer. Edit & Continue, it is your friend.This one may require sending foul smelling fish products to the C# team's office.
· For someone to finally unseal the ImageList component. Or at least implement the ImageList as an interface so we can develop our own. For those of us who build commercial apps with hundreds of windows this is a huge issue. Someone decides that the “New” icon should be changed and we spend the next week changing it in 99 places (yes, 99. Because we always forget to change one someplace). Hell, think of the memory savings that could be had by only having a single global ImageList rather than 100 separate ones with 99% of the same images in them.
Hmm.... I may have to stock quite a bit a foul smelling fish products.
· A real source code control system API. See that one that you have now? Give it too Frodo and send him to Mt. Doom right away. It is evil and needs to be destroyed. Source Code Control is the most overlooked aspect of software development and the poor API support provided by Visual Studio is doing nothing to help correct it.
While it is unclear what effect the new SCC system from Microsoft will have on the exposed API, I suspect it will improve things quite a bit. So it looks like this one will actually happen.
· Yukon by Q2
Yukon by Q2 2008? OK, that is unfair. SQL Express at least shows that progress is being made. Maybe by early Q4 then?
· Someone to confirm that there will in fact be an MSDE version of Yukon. I always assumed so but someone pointed out that this has never been explicitly stated.
100% answered by SQL Express. Congrats to the Express guys by the way. I really like what I've seen so far.
· A [Replaced] attribute that goes one step beyond [Obsolete] in that it causes Visual Studio to automatically replace the old reference with the new reference. The best example is with property values persisted in the InitializeComponent method. When you
”Obsolete” a property Visual Studio doesn’t remove the old reference so you get a slew of compiler warnings that you must then delve into generated code to fix. This is even worse if you actually remove the property all together. It would be nice if the system could handle this automatically and use [Replaced(NewFunctionName)] to point to the new property.No idea. Someone hinted to me back in February that an answer to this problem was coming with VS 2005, but I've not seen it.
So we have a 1:6 ratio. Considering I've yet to loose a pound, stop smoking completely, or pick up jogging I would have to say that my wish-list is doing much better than my resolutions. -
Hatteras
Eric Sink talked about Hatteras yesterday. Being that I’ve been eye-deep in my current project (I should really post about it at some point…) I’ve had little time to keep up with my blog list and I’ll just assume that this has been talked about quite a bit. But given my zealous stance on source control, I wanted to get some points in.
First off, about frigging time Microsoft! For a company responsible for defining a large portion of what constitutes mainstream software development tools to have all but ignored source control was obscene. Sure, they have SourceSafe and many people use it successfully. But I would argue that use SourceSafe is akin to moving your money from under the bed to a good looking fire box. Yes, it is much safer in a fire box than under the bed. But if you think it is the same thing as a bank you are kidding yourself.
For anyone who has been burned by the lack of source control (or by SourceSafe), a quality SCC system is absolutely invaluable. This is true even for very small teams (even “team of one”) shops. But alas most small shops ignore the warnings and prod along with either nothing (SourceSafe) or less than nothing (hope and prayer). My hope is that with Hatteras we will start SCC get more attention and more mainstream use of source code control because of it. Anything raise awareness of SCC is a good thing.
As for Hatteras itself; it looks interesting but as Eric stated it is clearly geared towards the Rational product line. My experience has been that these systems, while powerful, are very difficult to implement and use. To quote Joel Spolsky, “Any impediment to using a [software package] will only result in people working around it”. And these systems are often the poster children for impediment. They are so structure intensive that the act of using the system often takes longer than the act of coding (i.e. 20 minutes to correct a spelling mistake or the like). Now maybe Microsoft will solve this problem and release a system as powerful as ClearCase but dramatically easier to use. After all, they’ve done that many times over the years. But I wouldn’t hold my breath.
So for me and my small team over here, we will continue to happy use SourceGear’s Vault. It is affordable, highly reliable, and doesn’t impede my team from getting things done. And that to me is the hallmark of a good source code control system.
UPDATE: Removed gratuitous profanity for Phil Winstanley's sake. :)
-
Bad Images
Seems I’ve been so busy, I’ve let my blog get a bit stale. I’ve been knee deep into our current project and between that and maintaining our existing product in the field; I’ve been nailed. What finally put me over the edge was a set of presentations I delivered last weekend in Baltimore, MD. It ate up any remaining seconds I had.
Well, at least now I have a picture to prove that seeing one of my presentations really is a religious experience. :-)
-
Carl and Rory Take 2?
Hmm, so Carl and Rory are thinking about a more broad reaching radio show. I like the idea, but this line caught me off guard:
I don't want it to be Oprah, though. So, we're not going to talk about the things most talk shows are focused on.
Well, I don’t know about the rest of you but I’m saddened to hear this. I was sure Rory was next in line for Oprah’s job. I guess this means I loose the office pool. Damn it…
-
Sign #192 That You Work Too Much
In a life devoid of much entertainment (I’m posting at 9:39 PM from my office right now) I’m left with getting what little I can out of meaningless events. And tonight I managed to find one such event.
Upon visiting the new Channel 9, I was able to create a user – get this - using only my first name. That’s right! No assortment of random letters and numbers after my name. No wasted time trying to think of an amusing handle that will both make me look humorous and yet still too cool to be a geek. Nope, not this time. It is just pain ole “Marc” for me.
You’re envious I know.
-
Speechless
Sometimes smart people say stupid things. Sometimes stupid people say smart things. And then there is Rory’s buddy-o Christopher Anthony. I’ve not read insight as on-point as Christopher’s since I first read Time Cube….
Now if you don’t mind I need to go bleach my eyes.