Microsoft
Hidden Windows Gems: Extensible Storage Engine
Did you know that Windows came with an embedded database? Did you know that this embedded database is the power behind Active Directory & Exchange? Did you know that this is actually part of Windows' API and is exposed to developers? Did you know that it requires no installation and has zero administration overhead? Did you know there is a .Net API? Well, the answer for all of that is that you probably didn't know that, but it is true! The embedded database is called Esent, and the managed library for this API was just released. This is...
Oxite: Open eXchangable Informative Troubled Engine
This is a post about Oxite, but it is actually not about the code base. There has been a lot said about this, and I think that I can solidly put myself on the side that spouts WTF and now seeks access to memory altering drugs.
What I wanted to talk about here is actually the way that this was handled. It didn't take long for people to start noticing the actual code quality of this in contrast to its marketing promise:
We heart you so much, that we thought of everything. Oxite was developed carefully and painstakingly to be...
KB957541 available for direct download
This is the fix for the ExecutionEngineException that appeared in .Net 3.5 SP1, and was found by Rhino Mocks. You can get it here: http://support.microsoft.com/?id=957541
Consenting Adults
David Kean has an interesting post here: "I can't believe Microsoft didn't make [Enter API Name Here] public"
In particular, he mentions this aging argument:
Developing good APIs is extremely difficult, especially the first time around. When we get things wrong (and we do get things wrong), trying to maintain backwards compatibility often stifles innovation as we try to correct these scenarios. Unfortunately, unlike others, we don't have the luxury to make only 95% of our new versions backwards compatible with our previous versions.
I have a lot of problems with this statement. Chief among them is the treating the users...
Windows Activation SUCKS: How to give someone a heart attack
On a day that I have to give 3 presentations, I open up windows and I refuse to log me in, instead, I get this thing:
And then it refuse to activate! Turning the window installation to a brick!
I solved that eventually, but that was a really scary time.
On ASP.Net MVC (yes, again :-))
As you probably know by now, I have been working on an ASP.Net MVC project for the last two weeks. Based on that, I think that I can base a pretty good opinion about it.
Are you ready for it?
[insert significant pause here]
I like it.
Now, just to be clear. I like it not only in comparison to WebForms. I like it on its own. In other words, I don't consider the ASP.Net MVC to be a default choice if all you have is that or WebForms.
The pros of using an MVC framework are well known by now, so I wouldn't go...
And yet ANOTHER ASP.Net MVC Bug
This is getting annoying, to tell you the truth. I am trying to develop an application here, not do QA. Let us take the following class: public class IdAndName
{
public long Id { get; set; }
public string Name { get; set; }
}
And the following code:
var idAndNames = new[]
{
new IdAndName {Id = 1, Name = "one"},
new IdAndName {Id = 2, Name = "two"}
};
var list2 = new SelectList(idAndNames, "Id", "Name", idAndNames[1]);
var result2 = Html.DropDownList("test",list2);
What would you expect the value of result2 to be? I would expect it...
Another ASP.Net MVC bug: Rendering views to different output source
Take a look at the following code. What would you expect the result of this code to be? Leaving aside the question of exactly what I am doing here, or why. What I thought this should do was to render the partial view into the string writer. The method signature of Render most strongly suggest that this is what it would do. What it actually does is to render the partial view directly into the response. Following the code a bit more, it looks like you literally cannot do this. ASP.Net MVC views are hard coded to use...
Reproducing a bug
Create new ASP.Net MVC application: Create an action that take non nullable argument called 'id': [HandleError]
public class HomeController : Controller
{
public ActionResult Index()
{
ViewData["Title"] = "Home Page";
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
public ActionResult Test(int id)
{
return Content(id.ToString());
}
public ActionResult About()
...
Title left blank since I can't think of non inflammatory title for this post
This works: This doesn't: I haven't bothered to find why, but that is surprising to me. (Note that here the enctype is specified as "multipart/form-data", which may or may not be related) Update: It is not related. The real culprit, as best I was able to reconstruct is because of this piece of code: public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new {controller = "Home",...
A case study of bad API design: ASP.Net MVC Routing
I am doing a spike in ASP.Net MVC now (and I'll talk about this at length at another time). I hit the wall when I wanted to do something that is trivially simple in MonoRail, limit a routing parameter to be a valid integer. Luckily, just looking at the API signature told me that this is a supported scenario: Unfortunately, that is all that it told me. This method accept an object. And there is no hint of documentation to explain what I am suppose to do with it. A bit of thinking suggested that I am probably...
PhizzPop fizzed out
Yesterday I was at the PhizzPop design party in New York. The purpose of the party was to show off the capabilities of the new Expression 2.0 product line. The way chosen to do so was by getting several companies to participate in a content to get the best result. It might have been a good idea, but it back fired tremendously.
One of the reasons that I went to that party was the expectation that I would be impressed by the new capabilities. Instead, what I saw there was... disappointing.
The best candidate application there was adequate. In fact, it was...
Visual Studio 2010
I got the chance to get an early CTP of Visual Studio 2010. This is the post I use to record my first impressions. There is no order to this post, it is just impressions jotted down as I see them. We seem to have a new start page: Following the MS & OSS new approach, one of the samples is Dinner Now using Lucene, which is the first project that I found to test. TFS is still broken: I really don't like to see this kind of issues in a source control...
On jQuery & Microsoft
No, I am not going to bore you with another repetition of the news. Yeah, Microsoft is going to bundle jQuery with Visual Studio and the ASP.Net MVC. That is important, but not quite as important as something else that I didn't see other people pointing out. This is the first time in a long time that I have seen Microsoft incorporating an Open Source project into their product line. I am both thrilled and shocked.
The Managed Extensibility Framework
The Managed Extensibility Framework is "new library in .NET that enables greater reuse of applications and components. Using MEF, .NET applications can make the shift from being statically compiled to dynamically composed. If you are building extensible applications, extensible frameworks and application extensions, then MEF is for you." (I was too lazy to think about my own description for it, so I just copied the official one.) Probably the first thing that you should know about MEF is what will undoubtedly be the most common cause for confusion. The Managed Extensibility Framework is not an IoC container. This...
KB957541 is my favorite hotfix
It is not public yet (but you can call and ask for it), but it will be when SP1 goes to Windows Update. This is the fix for the ExecutionEngineException that appeared in .Net 3.5 SP1, and was found by Rhino Mocks.
It took a while (but not unreasonably so), and it is here, yeah!
This is fixed, you can get the fix here: http://support.microsoft.com/?id=957541
Waiting for the Service Pack? I don't think so
Here are a few interesting things that I found about .Net 3.5 Service Pack 1: Serialization hangs or throws an OutOfMemoryException with static delegate and ISerializable on 3.5 SP1 ExecutionEngineException with ParameterInfo.GetOptionalCustomModifiers and GetRequiredCustomModifiers on 3.5 SP1 .NET 3.5 SP1 breaks use of WPF under IIS .NET 3.5 SP1 seems to break .NET 2.0 applications with assembly loading error. .NET Framework 3.5 SP1 breaks type verification I just googled for "3.5 SP1" on connect.microsoft.com, and took only the verified (by Microsoft) items...
How .Net 3.5 SP1 broke Rhino Mocks
Okay, now that we are over the sensationalist headline, the actual problem is more complex than that. Let us assume that we have the following interface:
public interface IComplexGeneric<T>{ void GenericMethod<K>();}
Up until .Net 3.5 SP1, Rhino Mocks was perfectly happy to deal with such an interface (well, not happy, exactly, that requires some hard core code). With .Net 3.5 SP1, this generate an Execution Engine Exception.
Fabian Schmied was kind enough to prove that select is broken here. This is the connect site issue, and I would appreciate it if you can vote for it.
The work around for this would mean that...
On InternalsVisibleTo
Some people pointed out that the distinction between public and published can be done using InternalsVisibleTo. This is sort of possible, I agree, but it only works if you think about this as a unit testing measure. Jon Skeet asked about good usages of InternalsVisibleTo aside from unit testing, and I decided to check and see what the framework is using it for. From cursory observation, it appears to be heavily misused. Just from observing the allowed dependencies make me cringe. System.Data allows: System.Data.Entity ...
ADO .NET Entity Framework Vote of No Confidence
I am a bit late on posting this, but I suggest taking a look here to read some of the community reactions to the issues we have observed in the Entity Framework. I will let the document stand on its own, since there is no way I can be impartial here. I would like to state something (which I also told the Entity Framework team in person): If someone manages to come up with a kick ass OR/M solution that does what I need (allow me to create maintainable and flexible solutions and has...
Reviewing the Entity Framework Source Control Support
Frankly, I am quite amazed that I even need to write this post. Source Control is such a basic part of the development process that I didn't want to believe there could be anything to say about it. In the previous release of Entity Framework, there were deal breaker issues in the source control story. In short, it didn't work. I installed Visual Studio 2008 SP1 Beta to check how the new bits behave. Let us start from the simplest scenario, defining a model with two classes, and commit to source control: Now, let...
Visual Studio 2008 SP1 Beta: AVOID
After the pain of VS 2005 SP1 (which killed my machine, as a matter of fact), I decided to install the SP1 beta for VS2008 on a clean VM. That VM is a simple install of the OS + VS 2008, that is all. Here is the result of installing VS 2008 SP1 Beta. I have no idea what happened, at one point it was installing, now it is rolling back. I suppose I could try to figure out what is going on, by hunting in the logs and trying the cargo cult approaches. ...
Source control is not a feature you can postpone to vNext
I was taking part in a session in the MVP Summit today, and I came out of it absolutely shocked and bitterly disappointed with the product that was under discussion. I am not sure if I can talk about that or not, so we will skip the name and the purpose. I have several issues with the product itself and its vision, but that is beside the point that I am trying to make now.
What really bothered me is utter ignorance of a critical requirement from Microsoft, who is supposed to know what they are doing with software development. That...
SQL CE Issues, Part 2
Hopefully I'll get the same quick "you are an idiot, this is how it is done" that I got the first time I posted about it. Here is my current issue. Attempting to open SQL CE from multiple threads has locked it out. This has been the state of the system for ~6 hours. I don't mind the locks, I do mind the fact that there seems to be no way to specify a timeout for that, so the app just sit there, waiting, waiting, waiting.
Unity Annoyances
This has nothing to do with the code itself, and anything to do with how it is managed. Take a look here: The weekly drop is an MSI. I don't like MSI. They taint my system, put things in places I don't want, and in general annoys me. Okay, so let us just grab the source directly, right? That is what I tend to do anyway. Oh, I forgot, there isn't any source repository available. A zip file is the least I would expect.
SvnBridge - Performance
Standard disclaimers, this is from a machine near the server, it is not constant at that level, it is on the hosted version only, a lot more work needs to be done, haven't profiled it properly, etc. In short, this is a nice picture, and a good way to end a day.
MsBuild vs. NAnt
A long while ago I moved the Rhino Tools repository to using MSBuild. I am not quite sure what the reason for that was. I think it was related to the ability to build it without any external dependencies. That is not a real consideration anymore, but I kept that up because it didn't cause any pain. Now, it does. More specifically, I can't build the rhino tools project on a machine that only have 3.5 on it. The reason is that I have a hard coded path with 2.0, which worked well enough, until I tried to...
Reviewing Unity
I am sitting at the airport at the moment, having to burn some time before I can get on a flight, and I decided to make use of this time to review the Unity container from the P&P group. A few things before I start. Unity is a CTP at the moment, it is not done, and that is something that should be taken into account. I have several design opinions that conflict with the decisions that were made for Unity. I am a contributor to Windsor. Overall, I am biased. Please take that into account. I am...
Re: Versioning Issues With Abstract Base Classes and Interfaces
Phil Haack is talking about why the MS MVC team changed IHttpContext to HttpContextBase. I follow the argument, but at some point, I just lost it. This, in particular, had me scratching my head in confusion: Adding this method doesn’t break older clients. Newer clients who might need to call this method can recompile and now call this new method if they wish. This is where we get the versioning benefits. How on earth does adding a new method to an interface would break an existing client? How on earth does adding a new method to an interface require...
More Windows Server 2008 Discoveries
Okay, I am impressed. Really impressed. I installed a non-web-edition of Win 2008, and now everything works as it should. I really like what Microsoft did here. Both in terms of the UI experience that you get, the guidance that they keep popping up (which is not annoying), the speed, and overall feeling. What really made me happy was this. Now I can actually drill down and see what is going on so easily. Something that certainly cheered me up was the file-copy test: It started instantly, and it looks like we get information that...
The cost of 2008
I just installed Windows 2008 and Visual Studio 2008 on a VM. Here is the result: I am not sure what is in there, but it is a lot. I then tried to install SQL Server 2005, but is never let me actually install the server, it only want to install the client components. It warns that you need SP2, so I installed that, then try it again, no go. Any ideas? By the way, so far, ignoring the issue of the SQL Server installation issues, I am impressed by Win 2008, it looks slick, it...
Microsoft CRM woes
I have wasted the entire day trying to troubleshoot some idiotic issues with MS CRM. Allow me to reiterate my previous statements on Microsoft CRM. It is an application built on feet of clay, marketed as a development platform and undeserving of consideration as anything but a vanilla install. Highlights of the CRM: Trying to update an entity via web service call. You get a "platform error" message. You have no input why this is not working working. Fast forward a day, turn out a PreUpdate callout is throwing an exception, which the CRM just swallows and abort....
Configuration over Convention
A few days ago there was a discussion on the ALT.Net mailing list about some of the design choices that the MS MVC team has made. Specifically, the issue of [ControllerAction] and explicit RenderView() came up. Rob Conery just posted a 6 pages post that goes over how to deal with the pain of this decision. From his post: I’ve been working a lot with the new MVC bits and one thing that’s annoying is having to type the same stuff, over and over. One in particular is the Controller Action: Rather than type this over and over, I...
CodePlex, Performance and Usability
I am trying to get some code from CodePlex at the moment. Since I am used to SVN and its model,I downloaded SvnBridge and hooked it up, then tried to check out the source code. Fast forward about an hour later, and it is still have not checked out a single file. I am pretty sure that it is not an issue with the network, or anything like that. I believe that it is doing a full download of the source code locally, and then fake SVN from there, but I haven't checked. Then I tried the CodePlex Client, that...
Whose time & effort?
Phil Haack has managed to convey my thoughts about MS duplicating existing work better than I could. Specifically, this is important: Duplication Is Not The Problem. Competition is healthy. If anything, the problem is, to stick with the evolution analogy, is that Microsoft because of its sheer might gives its creations quite the head start, to survive when the same product would die had it been released by a smaller company. I wrote Rhino Mocks for myself. It seems to be useful for other people, which is a happy coincidence, but I wrote it for myself. One thing that I...
Reasons for caring: Microsoft & OSS
In the ALT.Net mailing list, we are having a discussion about the CAB and OB. Part of this discussion include this dialog between me and Brad Wilson. Brad: If you're simply angry because we had the audacity to make our own object factory with DI, then I can't help you; the fact that P&P did ObjectBuilder does not invalidate any other object factory and/or DI container. Ayende: No, it doesn't. But it is a waste of time and effort. Brad: In all seriousness: why should you care if I waste my time? That question prompt this post, because I...
Expression Design: Lying By Omission
Expression Design is supposed to be able to import and export PSD files. PSD is one of the more common file formats, because it is the one that Photoshop uses. However, the import capability that Expression Design has is limited to... getting the embedded bitmap inside the PSD file. That one is supposed to let you get a thumbnail over PSD files, not as an import tool. The problem with that is that PSD files are not bitmaps, they are composed of layers, transforms, and a host of other things that I am probably forgetting. Saying that you can import...
Setting yourself up for failure
John Lam, the guy writing IronRuby, cannot look at the Ruby source code. That is the way Microsoft works. This is setting yourself up for failure, hard. The main issue that I have with this is that this is purposefully putting blinders on, and then acting surprised because the direction that the project went is rejected by the community. The Entity Framework debacle is a good example. How the hell can you miss what is going in the OR/M world for the last 5 years? How the hell can you get to the point where you are surprised...
Microsoft the company vs. Microsoft Employees
So far, the only Microsoft employees that I have met and didn't like were the marketing drones. I dislike being lied to, by I digress. All the Microsoft employees (that were even remotedly techincal) that I have met or spoke with so far were really nice guys, open to suggestions and to conversation. Microsoft, the company, however, seems to behave in a rather different manner. At some point in the chain, there is a huge management problem, because I want a Microsoft that behaves the way most of its employees are behaving. I really want Microsoft to be as open...
Microsoft: Just Say No
And to foretell the expected response, no, I am not saying or suggesting that you should reject Microsoft. This post is a suggestion to Microsoft. Microsoft should start to say no. Let me give you the scenario that we are talking about, and I hope that it will make it clearer: A customer tells microsoft: "We really want to use this new approaches that we have been seeing talked about, like inversion of control and dependency injection. Can you provide that for us?" Now, up to this point, what Microsoft has been doing is to release a copy of some...
Don't use MS CRM! It is not worth the ulcer you will get!
Yesterday I reached the breaking point with regards to MS CRM. We needed to push a build to staging, so the customer can start acceptance testing. The way we built it, we have a central CRM development server, and each developer is working mostly locally, but against the same server. I don't like it, but the CRM doesn't really give me much choice. At any rate, we started the move by trying to move the customizations from the development server to the production server. Naturally, there is no way to diff things, so I have no idea what changed since we...
No one was fired because they bought Microsoft
And just to be clear, I don't agree with this sentiment, but it is a very real one. Times have changedOur applications are getting worseThey run so slow and won't behaveThe code is ugly and perverse!I tell you, that application is deprave! Should we blame the PM?Or blame the developers?Or should we blame the process?No! blame MicrosoftEveryone: Blame Microsoft Blamability is an important concept, the facts doesn't really matter, but the ability to blame someone else, preferably something as ambiguous as Microsoft, is a good way to have an out.
Microsoft, SubSonic and Open Source
Rob Conery has just announced that he is going to work for Microsoft. That is interesting, but not really surprising or shocking. Microsoft does seems to hire a lot of the bloggers in the .Net space. What is surprising is the role that he is expected to fill in Microsoft. He is going to work full time on SubSonic, an Open Source project. Why is this surprising? Because to date, I haven't heard of any other cases where Microsoft have paid for developers to work full time on OSS that didn't came directly from Microsoft. This is a fairly common model in the...
Microsoft and opening the code: damned if you do, damned if you don't
Here is another perspective of the results of making the source available. At that point, Microsoft really doesn't have a good way to get out of it. People want to get the source (I am one of them), but at the same time, they are fearful of legal actions as a result of looking at the source and doing any sort of development (again, I am one of them). What is required is trust, and Microsoft is still paying for its actions of old (and its actions as of few months ago, patents & OSS, for example) in that regard.
Look, don't touch: Clearing the misconceptions about opening CLR libraries sources
Important note: I am representing my own conclusions here, not anyone's official position. First and foremost, the CLR libraries are not open source. Let us talk about licenses, and what they gives us. By default, even if I have the source for a library, I can't really do anything with it. That is because the authors of the library retain copyright and you don't have any rights to do anything with it. Open Source explicitly gives you certain rights (usually modifications and redistribution rights) for the source. The license that Microsoft is currently talking about is a...
Microsoft Most Valuable Professional
Visual Developer - Visual C# I am not that much of a visual guy, but I can leave with that. I have been told some horror stories about mismatching skills and distinctions. Many thanks for Justin Angel, for all the effort he put into it. .
Erik Meijer on Democratizing the Cloud
This talk was the keynote for yesterday, and I came out of it with a profound sense of shock. If this is where Microsoft is headed, then they are in a real problem. Some of the things that really bothered me: Don't learn anything new, let Microsoft chew it up for you first. Let us compile our C# to JS (good) and then just make some of the calls a remote ajax calls (bad).I would have thought that they would have learned from the DCOM debacle, if nothing else. Location Transperancy is a Bad Thing.In general, Too Much...
Microsoft Connect: Redefining bugs as features as a standard operation procedure
This and this bugs are really pissing me off. Both those bugs are related to the same source, and one of them was originally a Rhino Mocks issue. They both stems from the CLR runtime bugs. Basically, trying to inherit from a generic interface with generic method parameters that has constraints causes the runtime to puke with a TypeLoadException. I am not one to cry that select() is broken, but in this case, it most certainly is. It is verified using both the C# compiler and Reflection.Emit, so it is definitely a runtime bug. The really annoying parts that they were...
Anti Corruption Layers: Striving for FizzBuzz level
I think that I mentioned that I don't really like Microsoft CRM development options. Considering the typical quality of the code that I see online when I search for samples, I certainly see the CRM as corrupting influence. That is why I pulled the big guns and built a whole new layer on top of it. I assume that you are already aware of my... reservations for leaky abstractions, and considering my relative lack of expertise on the CRM itself, I don't think that it would have been wise to diverge too far from the model that the CRM...
Microsoft Connect: Without Words
I am going to print a response I just got from Microsoft Connect here, and let you do the judgement yourself: Very sorry for not getting back to you on your last comment till now. Unfortauntely the Connect system just tracks fixes for our next product releases. To get fixes for shipped products you'll need to contact Microsoft Support at http://support.microsoft.com/oas/default.aspx?ln=en-us&prid=9511&gprid=344272. This probably explains this better.
Microsoft CRM Frustrations
I took a look at some of the views that the CRM has generated when I created a sample entity. 7 joins is a bit too much, I feel. And to top the previous point, an actual commit message by me, dating about two hours ago. Rewriting the serialization / deserialization to use dynamic entities and fixing an issue with null values not being liked by the @!#$ CRM. That issue has cost me merely three days and much gnashing of teeth. I don't like MS CRM one bit. And any amount of insulation layers can't help...
Duplication of Efforts
Scott Bellware brings up one of the most annoying habits from Microsoft, duplicating existing OSS stuff instead of promoting the use of the existing tool. He ends up the post by asking how long it will take before Microsoft will have its own mocking framework. On the theoretical possibility that they would do such a thing, let me express my feeling about this in advance: I would be extremely pleased if Microsoft came out with a mocking framework that completely and utterly kicked Rhino Mocks' butt. I would be very happy because it would mean that I would get...
Developing on Microsoft CRM
I am currently in the process of leading a team in a project that is built around Microsoft CRM. A while ago I posted what I consider essential requirements for working effectively with business platforms. Since then, I had had a lot of time to play with MS CRM and see what the development story is. Please remember, this is an evaluation of Microsoft CRM from a developer perspective. I don't touch on any of the other aspects that it may have. I have already started to dislike it, and I have a feeling that it would only grow more...
How to kill the community feedback, or, the uselessness of Microsoft Connect
I just got this in an email: Did you go to Microsoft Connect and supply feedback about the things you don't like about the product? That may be received better than a rant. I feel like I should explain better what I think about this. Broadly, I see it as a dead end path, since there is no real way for me as the reporter, to do anything about it except to report it. The main issue here is that a lot of those bugs are being closed for what looks like ridiculous reasons. Eventually, it lead to the belief that...
Wish: Distributable Windows-based Virtual Machines
Sahil Malik points out that Microsoft has found a way to distribute Virtual Machines for Windows by time bombing them. In fact, they now have quite a number of them available for download. Sahil has another request, to be able to do the same himself: Extend that time bomb mechanism, so parties other than Microsoft can play. I should be able to create a solution based on MSFT technologies, and hand over a VHD for the world to play. That is something that I would like to see very much. My company has a lot of virtualization stuff going on, and...
Imprisoning Mort
Nick Malik responded to the discussion around his Tools for Mort post. He has a very unique point of view. If you cannot make sure that Mort will write maintainable code, make him write less code. Then when it comes time for you (not Mort) to maintain it (he can't), you don't. You write it again. Okay, so you have a tool that makes sure that Mort doesn't write a lot of code with it. Now Mort has left and I need to maintain the code. How do I do it? I can't do it with the tools that...
Redefining reality
The "Tools For Mort" post from Nick Malik had me check outside to verify that the skies are still blue. Nick seems to define a Mort as: Mort works in a small to medium sized company, as a guy who uses the tools at hand to solve problems. If the business needs some data managed, he whips up an Access database with a few reports and hands it to the three users who need the data. He can write Excel macros and he's probably found in the late afternoons on Friday updating the company's one web site using Frontpage....
Good Little Developer, do what you are told
Peter Laudati managed to hit basically all my red buttons in a single post, that is rare. He talks about the recent Alpha Geeks posts in the community, but I do believe that he is observing a different community. It seems almost like a repeating cycle where there are highly skilled developers moaning about the lesser skilled developers around them. Ha? In the recent posts, the topics was never the developers, it was the tools from MS and their ability to be utilized effectively by developers outside the very thin line that was painted for most of them. When I...
Hasta La Vista
Vista is failing fast to impress me. It is a prettier version of the previous versions, but they have managed to screw up significant parts of the user experience in ways that I find astonishing. What is bad: Vista is slow. File copies or network stuff is horrendously so. Using explorer to go to a network drive takes much longer than it used to do. The broke the Backspace button in explorer! How can you break something like that is beyond me. The backspace should go UP! Not back. What wasn't a problem: UAC is not as problematic as...
Arrest that man! He had built workaround a technical limitaion!
Alex* has posted a piece of code that will solve my issue with Window Live Writer and spell checking. The problem is that this is clearly working around a technical limitation in the software, as a non English speaker, I am obviously required to use Windows Live Writer Team Edition, which will (in the next version only, mind you) support English spell checking for non-English speakers. I am expecting the Cease & Desist to come at any moment, and Alex is currently expecting an attack from the Tean Ninja Lawyers teams. Nice hack Alex, now off to prison with you....
Thou Shall Not Work Around Technical Limitations
Frans Bouma has a really good overview of the implications of Microsoft behavior in the TDD case. The thing that really bothers me is that the thing that they are hinging their treats against Jaime is "work around techincal limitations". Well, excuse me, but that is my job. What am I supposed to in cases such as this or this? Report a bug to Microsoft and wait two years so maybe they will fix it? (Or maybe they will decide that it is there for backward compatability. This is generating so much bad will around the community, I just...
On the CAB: Again
I wanted to take some time to clear some issues regarding my previous post about the P&P. A lot of people seems to grab on to my mention of CAB (interestingly, no one tried to defend the DAAB :-) ), and the conversation has turned that way. Just to remind you, here is what I said:The CAB is a good example, I like some of the ideas there, but it comes with so much weight around it that it is not worth bothering. I can build on the same ideas in half a day and end...
On Not Invented Here
As long as I am stirring the pot, here is an amazing comment by Steve ( no blog, apperantly :-( ) left at Chris Holmes post about my P&P post. In reference to: "Would it be acceptable for them [P&P] to build Enterprise Library using Castle Windsor?" Interesting that the same argument against Ayende, is used by the P&P team? ie. build your own, don’t use existing capability that the .net community has created? ...
On RYO vs. NIH
Bil Simser has stepped into the complexity debate with this post. This is actually on the end of Bil's post, but it deserve a special mention:As Jeremy put it, the P&P guys are a good thing as they're out there getting the Agile word out to many more people that we can. In that, I haven't done justice to the P&P team. Introducing Agile methodologies and best practices is something that I am very passionate about, and I failed to give them their due credit about their efforts in this...
I may need a hat or a crow
So I can eat it (No Scott, I will not go to that resturant again, I know they can probably serve both, but the salad scares me). Appernatly CodePlex is adding Subversion support. What I would really like to know if it would have the same integration that the TFS backend would have as well. At any rate, I would like to take this opportunity to apologize to the CodePlex team, I would have never believed that you would do it, way to go!
Losing the Alpha Geeks: It is not about OSS
Scott Hanselman has a post titled: Is Microsoft losing the Alpha Geeks?The collective group in the discussion at RailsConf seemed to agree that Microsoft should make not just the DLR source available, but actually create a non-profit organization, ala Mozilla, and transfer the developers over to that company. They should allow commits to the code from the outside, which should help get around some of the vagaries of the GPL/LGPL licensed Ruby Test Suites. "IronRuby" should be collectively owned by the community. In general, I would think that such an organization would be...
Random thoughts in a vacum
Chris Holmes responded to my post about not liking the P&P stuff. Specifically, he takes offence at my dismissal of CAB:It’s possible that Ayende thinks it’s just a bloated IoC container not worthy to lick Castle’s boots. I wouldn't phrase it like that, even if I would have agreed to this statement. I think that ObjectBuilder has a long way to go before it has feature parity with Castle Windsor, but that is different than "bloated... ... not worthy of licking my boots... ". Let us not dramatise this issue needlessly. ...
What I don't like the Patterns & Practices efforts
The P&P groups has a lot of stuff that they release to the world, often with a lot of fanfare and people talking about that. I have reached the point that I no longer care about what the P&P guys are doing. Just having them release something, practically guaratees that this is not something that I would like to use. This has nothing to do with OSS vs. MS or something stupid like that. This has to do with the following reasons: The...
Thinking about the Entity Framework
So, a few more things about the Entity Framework that came up today: One thing that worries me more than a little bit is that the Entity Framework has this three layers model, but all the focus is currently focused on 1:~1 (1:1 or nearly so) approach. This means that the interesting aspect of the Entity Framework, radically different models, is the least visited code path. At best, this mean that it wouldn't be supported by the designer, at...
The Entity Framework is an OODB in disguise
I was talking to Scott Bellware during a presentation about the entity framework, and I think that I have a new idea about what the Entity Framework is trying to do. From the vision statement, it looks like Microsoft is trying to build a data management system, including all the relevant tools, that is beyond RDBMS. The mention of reporting, replication, querying, etc against the entity model is what is mentioned as the key differenciator from OR/M such as NHibernate. In the DotNetRocks episode talking about Entity Framework, Daniel has mentioned that they...
The Entity Framework and Eating Crow
I was at an Entity Framework talk, and at one point they guys from Microsoft were criticized for bringing the industry back because:While the designer allows to get data from Stored Procedures, it is lame because it is not capable of generating them. Come on, VS 2003 had this capability, but the Entity Framework doesn't have it? I laughed so hard about that... After years of telling their customers that Stored Procedures were the only way, it was beyond funny to hear them being criticized on not support the old...
MS-Innovation
From Wikipedia:Innovation is the introduction of new ideas, goods, services, and practices which are intended to be useful (though a number of unsuccessful innovations can be found throughout history). The main driver for innovation is often the courage and energy to better the world. It may be because I am not a native English speaker, but to me the word innovation also carry the idea that the new thing that was created was novel, something beyond a mere evolutionary improvement of the existing. Given that definition, it drives me...
Integrated Tools vs. Collaborating Tools
Daddy Starr has reponded to the latest discussion on TFS vs a mixture of tools, he points out that something that was missing from the discussion is... This misses the entire point of a common development platform, which is a far more important value proposition than a feature set within a subsystem. The ability to repeatedly drive software through to delivery using common standards of quality, completeness, performance, trace-ability, and transparency is invaluable to any organization. ...
Individuals and Interactions over Processes and Tools
This post from Sam Gentile has made me realize that I need to clarify a few things about the recent TFS vs. XYZ discussion. This post isn't really aimed at him [that would be me] but I do find a post by him seeming to suggest that you only can use OSS tools to be "Agile" to be, well, quite disappointing I guess that I didn't notice the conversation digress, but I really should clarify that it has never been my intention to suggest, or seem to suggest, any such thing. Tools helps, and...
TFS vs. OSS - Round 4
Aha, my dear colleague. Yet you continue to use Visual Studio .NET, which, even without team system, has it's share of usability problems for you, I'm Sure. Why not use notepad or eclipse for writing the code, then running a command line to compile it, then use an XML Editor to change the config files? Why are you using a suite of integrated tools to develop code, in an environment which you probably aren't that crazy over? ...
Exensability: Ask, and you shall recieve
Bil Simser has a few things to comment about me and Roy's discussion about TFS vs. the OSS stack:Yes, other packages out there are extensible by nature (Subversion for example) but require coding, architectural changes, hooking into events, all of which are nice but systems like this were not designed for it. That depends on what you want, but usually coding is not involved, scripting usually does. Arhcitectural changes, etc, are usually not involved.Was subversion really designed at the start to be extensible so I could maybe have my storage be in...
TFS Vs. Open Source tools
This is getting fun, another reply from Roy in our discussion about TFS vs the other alternatives. Regarding my last post, Oren (Ayende) points out that regarding TFS's features, he can either find a match for them in open source land, or he doesn't really care about them. What bugs me is whether, assuming you can find and create such a solution out of a package of open...
TFS, Zero Friction and living in an imperfect world
Roy responded to my post about disliking TFS: I think that Oren is making one big mistake: he's throwing the baby out with the bath water. Just because the source control is not as zero-friction as some open source alternatives, does not mean that TFS is not a valuable suite of tools, with more added value than most open source tools that I know of. [List of advantages that TFS...
CodePlex SNAFU
I found this mostly by accident, but it looks like a few weeks ago CodePlex has lost the source code for some of the projects hosted on the site. I would like to address the part about "free means no guarantees" that came up in the post:CodePlex is a free service. They've provided complete source code hosting along with one heck of a website and never asked for a cent in return. So, I really can't hold it against them. I would. Regardless of the legalese involved. I have certain expectations from such...
MSDN vs. Google
Here is a small experiment, I want to read the documentation for IDispatchMessageInspector Go to Microsoft MSDN search page: http://search.msdn.microsoft.com/search/Default.aspx Load time: ~15 seconds or so Put IDispatchMessageInspector in the search input field and hit go. Load time: ~8 seconds ...
Paul Graham: Microsoft Is Dead, Take 2
Paul Graham has posted a clarification of his earlier statement about Microsoft demise:What I meant was not that Microsoft is suddenly going to stop making money, but that people at the leading edge of the software business no longer have to think about them. Whatever it is that he is taking, that is good stuff. We have to make a separation here from Microsoft as a platform builder and Microsoft as a service / application provider. In this case, I do believe that he is talking more about the service/application...
Paul Graham: Microsoft is Dead
I read Paul Graham's article, and I couldn't quite believe the statements that he was making. I am not really sure where I can start talking about the flaws in the article. Just to take a couple of the most outragous ones. It now seems inevitable that applications will live on the web—not just email, but everything, right up to Photoshop. Even Microsoft sees that now. He links to SnipShot, and calls it a Photoshop competitor. That is not apples to oranges comparisions, it is like comparing a candle flame to the sun....