Thursday, December 23, 2010

The Cheerleaders Strike Again - The Good Part Source Code Doesn't Lie!

Believe it or not I don't just rant on here, it takes several hours, in most cases to put a post together and write the sample code. Then I do my research on the internet starting with several sites (some people I'm sure wish I didn't visit their sites :)..) and forums to ensure my posts, while blunt and opinionated, are based on fact and my bases are covered so too speak. Which is FAR more then I can say for some cheerleaders.

This blog post started off on a comparison of weak and strong typed languages. However I found an article, while rather dated, but nonetheless really pissed me off.

The article, of course, was about strong typed languages, which is fine if you have an opinion that varies from mine. There is no right or wrong answer when it comes to this it is just a preference. But what pissed me off is the author, who I once respected and now could give a shit less about, was a very well known Visual Foxpro speaker and consultant.

I didn't really care for the fact he refused to sign the VFP petition, as we all were aware of the harsh reality it probably wouldn't carry much weight at Microsoft to the powers that be, but still IMHO it was simply a show of support for the Visual FoxPro community.

Anyway it is safe to assume the author made a very nice living off Visual Foxpro besides being his claim into the programing world, to the best of my knowledge. But now he is a freaking Microsoft Muppet, I had to create a new level higher then Cheerleader for shit like this where Microsoft, I assume, can just pull his strings. If Microsoft isn't influencing this writing then what the "f" is wrong with him?!

Look I am not a fan of Scott "THE DOT" GU and tend to disagree with Soma, I actually hold Soma in a bit higher regard then "THE DOT" due to the fact Soma will at least post comments on his blog that are critical of Visual Studio and let the community debate it out if necessary. But at least "THE DOT" and Soma only spin Visual Studio they don't blatantly invent bogus crap about legacy technology that worked!

This Muppet is not only spinning Visual Studio he is discussing highly questionable negative aspects of a tool that he was advocating using not long ago. His post have the potential to adversely affect VFP'S developers, if a client was considering building a VFP application and stumbled across his ramblings. These are the same developers that bought this muppet's tools and books. WTF is going on in the head of some people!

In his blog post he basically ripped on Visual Foxpro for being a weak typed language with general statements and total disregard for the truth while ignoring obvious problems in Visual Studio.

Of course I needed to set the record straight!

Let's pull out some excepts out of his post and see how right or full of shit he is!

After All Source Code Doesn't Lie

To give you some back ground, the premise is he had some old foxpro code that he wanted to refactor and move some proprieties and variables around. Which according to him was a pain in the ass to deal with the repercussions and ripple effect of an essentially minor change.

Ok so let's get into his post ...

In a strongly typed language, make a change to a property name, or remove and the compiler (he is referring to Visual Studio) will tell you where it's missing or mistyped or used incorrectly. It's that simple. The same is true if you're in full on heads down code mode and you write a large chunk of code at one time without immediately testing to keep the flow going. In Fox I have to write my code and test right away to make sure I didn't accidentally mistype or format something improperly. There are bound to be typos etc. again, in Fox the only way I will find any of these sort of problems is to run the code. In .NET the compiler catches all of that and it takes a few clicks to fix it because the compiler tells me a) that there is a problem, b) where it is and c) takes me there so I can change it. Compare that to VFP: Run the application to the code you changed, bomb, look at the code, make the change and re-run. And you better hope you excercise all the code paths.

I want to stop this right here. Factually what he said is related to properties and is inaccurate at best. In Visual Foxpro, if you removed a property or have a typo the Visual FoxPro compiler will "DEFINITELY" throw an exception.

Here is a small sample code to prove this point.

Sure looks to me like the FoxPro compiler is taking me exactly where the problem is at and yes VCX'S work the same way. WTF he is talking about!

Anyway let's proceed.

In a strongly typed language I can worry about logic errors and forget about syntax and typos - the compiler does that for me. Maybe I'm a sloppy coder, but I find that experience of writing code, having to run it and fail only to find that I left out a letter in a variable name very frustrating especially if that code is buried in the UI that often can be tested only within the application. Compare the time to fix this sort of a bug. ST: Compile see the error, click on the error, fix the code, recompile. Total time: Maybe 30 seconds. Fox: Start the application, click to the place you have to go, fail, pop up the editor, fix the code, shut down the application, clear memory etc. restart the app and try again. Time: 2-3 minutes at least. In my work (especially the last couple of days) that's a typical scenario...

This is another exaggeration of the truth. First off what programmer in their right mind doesn't worry about syntax when writing a piece of code. What the hell is he writing pseudo code and yes that is such a bastardized statement to even imply Visual FoxPro doesn't catch syntax errors. It is not even worth my time to put a print screen together of that case.

His other point, I think what he is referring to is variable name typos and scoping...

For example.

private pcTypo
pcTypo = ""
pcType = "some error"

pcType is a statement that will get through the compiler in VFP, no doubt about it and it will error in C#/Visual Studio.

But here is the kicker, he specifically mentioned UI in his comments. If you have ever used Visual Studio 2008 webforms or mvc, that thing is like swiss cheese, intellisense and even the compiler misses errors when it comes to javascript, html or jquery. That is "code and try" testing or in MVC you can use TDD. If he is right it takes 2 minutes to find a problem in FoxPro, which under most cases is not accurate, how long does it take to write a test script or debug a webform and mvc UI. Why in the hell isn't he blogging about that issue since this is such a big fing deal! And don't even tell me HTML is not compiled so Visual Studio doesn't have to catch anything, BULLSHIT! there could be a well implemented editor with error handling. This is one f'd up double standard being applied here.

I've worked this way for many years in FoxPro and I've never really thought much about it, but after having spent a significant amount of time in .NET, now when I go back to VFP code I sorely miss strong typing and the true Intellisense that VS.NET offers in the editor.

Sure he never thought about it much because the compiler and intellisense worked in Visual FoxPro for 99% of the cases. The typos in variables names happened so rare it was only an after thought. Most VFP programmers used Hungarian notion and knew the variable scope and type just by looking at the name without wasting time with all this strong typing crap. Apparently now he felt the urge to rant about FoxPro for no apparent reason other then a lame attempt to prove Visual Studio is more productive then VFP which it totally IS NOT!.

Ironically when he goes back to Visual Studio and leaves Visual FoxPro doesn't he miss not having to write plumbing code or having a class browser that functions or how about the command window to quickly and easily execute a command/function/query a table etc ... or being able to use the EVAL() statement instead of writing massive amount of reflection code. Give me a break!

Then he stated "true" intellisense: I Googled Visual Studio Intellisense Bugs, it produced 76,000 results. Move over there is limited intellisense in the UI layer of Visual Studio for web development and the Visual Studio intellisense, even in 2010 for C# has issues.

Look at this simple code...

iBroken is returning an error, fair enough, but the problem is gGuid is not where is the consistency?

Here is a UI snippet in Visual Studio 2010.

This snippet is an FING mess and not a single error being returned by Visual Studio 2010 intellisense. Leave me a comment if you can't see the problems and I will point them out.

I haven’t seen such an editor and I doubt that there will be one. It’s damn tough to parse untyped code and get meaningful metadata from just the source code alone especially if that source code doesn’t tell you type information. Without strong typing, how does the editor know what’s an object, what’s a property and whether it subobjects? How could it? It can take you some of the way as the Visual FoxPro editor does, but it will always stop short of providing a complete implementation.

The second problem with editor implementations is that it relies on an editor. The editor doesn’t compile the code. If you don’t use the fancy schmanzy editor that does this supposed syntax parsing then you’re back to having no type safety checking at all.

Sure he brings up FoxPro again, but where is even a simple case Visual FoxPro doesn't work? I honestly tried to break VFP and with the exception of some strange com stuff I couldn't. Again referring to my snippet above, there is the code editor in Visual Studio that didn't catch even obvious problems!

Let me skip to the end of his post to wrap this up.

In VS.NET 2.0 the new databinding features can bind directly to objects and the designers let you look at the objects and pick what to bind to by way of the meta data. You can drill into objects and pick properties several levels down etc. Without strong typing this would not be possible!

I am a bit confused as to what designers he is referring to in Visual Studio that indeed lets you do everything he states they can do?

Hmmm how about a class browser that let's you drill down into properties, methods and events isn't that a designer in FoxPro that Visual Studio lacks?

In FoxPro to do the same for a Fox class, we have to parse source code files ourselves and given the somewhat convoluted formats of the designer files. And even then there's not enough information in there. How do you figure out a return type in a VCX method for example? I’ve done this in Help Builder and the code to do this is a serious mess and what’s worse it doesn’t provide all the information that would be useful.

You may say that that this doesn't affect because you don't use features like this, but it does indirectly. In terms of what tools are provided for you and what functionalities are not available easily in Fox.

This is getting worse the farther we dig into it. Did the author really ask how do we figure out a return type for a method? Is he freaking serious? If you can't figure out a return type then you have more then intellisense problems with your code. Let me help him figure out a return type for a method.

Step 1: Here is how you create a class in the class browser with a return value

Step 2: We write some code that uses the class and WOW even intellisense works and we are able to find the method we created.

Step 3: Now the tricky part to figure out the return type. Lets use a couple lines of code and the command window for this complex task.

I am really glad I could help solve this mystery!

All the years I have been developing applications, return types has NEVER been a huge issue in the code I wrote. I would go into LINQ with the VAR return types or better yet the really screwed up anonymous return types in C#, but those came out after his article was posted and unlike the author I want to be "FAIR" in my analysis.

Functionality not available in FoxPro, damn why doesn't he mention core functionality not available in Visual Studio. Like a data centric language or a web form designer that freaking works or property sheets that function correctly. Shouldn't we be a bit more concerned about core features that are missing!

For example, lack of proper meta data is one reason there aren't any decent Web Service tools for VFP (and COM) because neither can generate type information on the fly just by looking at the objects. This is why it's so damn difficult to Interop with a Web service that exposes objects or even worse create one that publishes objects.

Meta Data in Visual Studio, this one I struggle with a bit, it is almost as bad as calling .NET a framework. When I think of meta-data, I can see how the compiler can extract type information and use it in C# fair enough. But in my mind a robust Meta-Data implementation is more along the lines of Visual FoxPro's VCX and SCX tables, where we have actual data that we can manipulate and extend prior to build time for some automation or designer functionality not only for intellisense. Yeah I know there is a layer we can hook into with Visual Studio to pull off some of the same things, but that is a bloated convoluted mess to work with making it not even worth the effort. Further like everything Microsoft does in Visual Studio that is a moving target as well. I believe they just released yet another RC or CTP called the MEF framework.

And you can get that same FULL information about an object instance, or type at RUNTIME. VFP sort of lets you do some of this, but it's very half hearted. The proof of this half-hearted design is Fox Intellisense which doesn't work properly most of the time because VFP doesn't have enough information to give you full information about a type.

Visual FoxPro is half hearted and doesn't work properly again but yet again not a single example of where this is occurring and Visual Studio is freaking perfect right! These Cheerleaders/Muppets will do or say anything won't they!

In closing:

This f'ing Visual Studio Muppet's post took bullshit to an entire new level. In his post he is praising more work caused by strong typing and Visual Studio while wrting about VFP'S half hearted implementation. WTF!!! On behalf of the Visual FoxPro Community, we want to thank you for dissing the tool that some developers are still making a living with!

Further what is wrong with making the compiler a bit more intelligent so we don't have to hand code the types as much or how about an opt-out option for strong data typing in C#. You are thinking, Mark that is not possible. Sure it is, VB.NET has an opt-out feature and let's consider the following example.

LOCAL pcTemp
pcTemp = ""
pcTemp1 = ""

We have a scope of local so the compiler can easily pickup on the fact it is a variable, further the first value assigned to the variable is set to a string so the compiler can also derive a type of string. pcTemp1 is not scoped so the compile could pick up on the fact there is an unscoped variable in the code. Does this have some holes, maybe, I gave it 30 seconds of thought. But the point is, there are ways to get around issues and make life a bit easier on programmers. Let the tool handle the majority of cases in an eloquent fashion and let us code out the exceptions NOT force us to code out everything because tool developers are too lazy to think!


I hope everyone has a happy holiday...

Until Next Time...


Sunday, December 19, 2010

First Impressions of Windows 7

I put the following quote on my blog when I first created it.

"Microsoft's biggest and most dangerous contribution to the software industry may be the degree to which it has lowered user expectations."

-- Esther Schindler, OS/2 Magazine

I truly believe Windows 7 gives merit to the quote.

I installed windows 7 and overall I am pleased with it. The OS is running on a 2 year old dell dimension with 4 gigs of memory. The performance is equal to Windows XP and while the UI is hauntingly similar to Vista, with the exception of a few tweeks here are there it is nothing to get excited about. The question needs to be asked, why am I "pleased" with Windows 7? I suppose the answer is because it sucked less and was less painful to install then any Operating System Microsoft has released since Windows XP. But is that really an accomplishment or like the quote suggested has Microsoft just lowered users expectations?

Let's dig into Windows 7.

Since I was installing over XP the machine had to be reformatted, which Windows 7 took care of, then literally I spent most of the day reinstalling all the software and copying files.

When I tried installing from any source other then DVD, I had problems with a mass disk driver. Which did not occur from the DVD install.

When you install from a DVD, I highly recommend disconnecting any external hard drives from the PC. Windows 7 Setup will add the external hard drive to the list of hard drives which you can install to and you could end up reformatting the external drive.

The install went ok, on boot up however it was not able to locate the Video or Audio drivers. If you run into this problem, take the time and fix the video driver issue as soon as possible. I started playing with the OS first and it crashed numerous times. Once the Video Driver was installed the OS stabilized. It might be a good idea to go into your device manager and take a screen shot of all the devices and drivers before the installing Windows 7.

User Interface and Applications
There is nothing great about the UI it is very Vista like. I think Microsoft would have been further ahead calling this a Vista Service Pack then create an exciting UI for Windows 7 to get rid of the Vista stigma.

When installing some applications, Windows 7 generated a compatibility warning which I ignored and they seem to run ok.

Windows media player was not installed which I found strange. There is a Windows 7 media player feature pack download on the Microsoft site. Definitely install it, the media player has some cool features including playing DVDS.

Windows had trouble with the Seagate external hard drive. First it couldn't find the drive. I rebooted with the drive attached and I received a low power error on the USB port and it crashed the OS. I changed ports and rebooted and it started functioning. I went back to the port that caused the initial error and it now works from there as well. No clue.

If you use paint, it has been infected with the useless ribbon bar found in office.

The control panel is still a mess, I prefer XP'S implementation.

The task bar takes some getting used to, not sure if I like it or not yet. A minimized or running application places an application icon in the task bar. Hovering over the icon brings up a window that contains each instance of the application that is running. You click on the application instance in the window to bring the application to the forefront. You can also pin icons to the task bar to unclutter the desktop but I haven't been able to pin the recycle bin or my computer icons that seems like a bug?

Internet Access
I have totally left the Intercrap Explorer camp and use Chrome. I think chrome is a terrific browser. Chrome had no problems with Windows 7. If you are not using Chrome here is the Link to download it.

Performance is on par with Windows XP, I can't tell any improvement or degradation with exception of Visual Studio 2010. That does seem to start up and compile a bit faster under Windows 7.

Some closing thoughts
Having gone through the Vista nightmare and the brutal downgrade to XP on a made for Vista box, Windows 7 wasn't all that painful. My first impression is, Windows 7 isn't much to write home about but the operating system isn't horrible either. If you are tired of battling Vista and sick of the dog performance then Windows 7 should be a welcomed upgrade however for XP users I am not sure how well window 7 runs on some hardware nor does it contain any must have features. Windows 7, unlike Vista, is not a step backwards. I just don't think it is a big "enough" step forward for some people to upgrade.

Until next time......


By the way I received an email with a link to an article written Dave Newman on his reasons for Leaving .NET that is worth reading. If the link didn't work here is the url:

Thursday, December 16, 2010

Guillaume Roques Response - What he really meant...

First off to everyone that has linked to this blog and even tweeted... yes traffic came from 2 tweets :) . . . I appreciate it. Today 205 readers checked out DOT BLOAT alone and over 1300 views since I have started blogging again, which is pretty cool. Is there a possibility momentum is building for the truth about Visual Studio? By the way, if you are linking to this blog and want a link back let me know and I will add it to the side bar.

A bit about Kinnect
Soma in his most recent blog mentioned Kinnect. Ok so my grandson has an xbox360, which is CTP 7 / RC3 / SERVICE PACK 210 TO BETA RTM 6 of the XBOX 160 which (in case you forgot) contained only pong and pac-man (just kidding). Anyway the kid is asking for this kinnect thing and more then likely I am going to get it for him. But anyway in that spirit here is a brief infomerical about kinnect before getting into the "bloat" of what I have to say. (Yes it is a repost but still funny)

Soma's Reply
I seriously appreciate the fact, Soma posted a reply and my comments. Below is what he wrote.

My blog isn’t moderated and comments should show up within a couple minutes of posting. Sometimes MSDN’s automatic spam filter triggers on blog posts, as it seemed to have with yours, so I’m posting it here:

.... My comments were posted here in his blog ...

Mark, I do want to tell you that I hear your concerns. You are passionate about Visual FoxPro, which is great. We will have to respectfully agree to disagree about Visual Studio and .NET. I hope we can lay this topic to rest.

While there is not much in his reply, I am glad he read my concerns unfortunately he didn't address any of them. I would like to clarify one point. I am "passionate" about "productive" development tools. I am passionate about the FoxPro paradigm and the ease and speed in which applications can be written. If Visual Studio was at least equal to or more efficient then VFP, I wouldn't have anything to complain about. I truly feel the community would be best served if developers voiced their opinion about the bugs and problematic paradigms of Visual Studio in an attempt to improve the tools and frameworks Microsoft is releasing. Our job is hard enough without tools and bloat getting in our way and slowing us down.

Now What I want to do is break down Guillaume Roques's response.

If you are a bit confused, check out my prior post before proceeding.

But first, lets pull out the questions in Tom comments.

1) Why was Ajax Toolkit discouraged and why did you start touting jscript all of sudden? Just because of open source pressure or that they out-witted you guys?

2) Why are you guys promoting MVC. What is the problem with regular way of doing ASP.NET sites?

3) Do you have scientific or statistical proof that MVC is better than the original approach?

4) How many .NET developers actually use MVC?

5) Why did you guys discourage LINQ-To-SQL and started encouraging Entity Framework?

Guillaume's reply to Tom - What he really meant.


When we think developers that are consuming Ajax it breaks into two segments:

a) Developers that want to write some client side script in their pages.

[Ok I have to ask this, what is the hang up with developers who want to write code? This makes absolutely zero business sense! Read that again ZERO "BUSINESS SENSE" either your client is paying for your play time or your company is. Either way it is a "waste" of time in most cases.

This is so simple, each line of code we have to write takes time and secondly no matter how simple the code is, each line of code is possible point of failure in your application. Folks, misspelled variables names, logic errors, unclosed brackets etc ... whatever the case is HAPPENS! Unless I'm the only asshole programmer that makes these type of mistakes and "the get close to the metal VS guys" are freaking perfect? In terms of html, jquery and javascript, in Visual Studio 2008, it is even worse since the compiler won't even catch the majority of the errors nor is intellisense fully implemented! There is a simple saying "time is money" and that is true for a reason. If someone has a trick to writing more lines of code by hand in less time then reusing a UI class for example please fill me in.

Let me make this clear: Programmers are hired to deliver a solution. Programmers are not paid to get an erection and masturbate over a link list implementation they wrote or the 500,000 lines of MVC code using 20 different technologies you created for a 20 pages website. Most client's could give a shit about your algorithm artwork. The primary reason for coding standards and writing clean code is for maintainability NOT to address some twisted technology fetish you have. If you want to write code use C++, C or better yet assembler trust me you can write a ton of code in those languages, I can speak from experience I started coding on a PDP11.

Moreover you guys are using .NET OS WRAPPER CLASSES and JQUERY to do most of the work for you, what metal are you getting close too? Cool you can type a variables or object and you know how to write some bullshit plumbing logic or call some bloated bastardized os wrapper class framework method and your head swells. Not all programmers are bad, but I am tired of the arrogance that seems to be running rampant in certain circles and with some individuals. First the VS guys looked down on VFP and now MVC dudes are looking now on webforms - isn't the solution what matters? Yeah I am just venting I will get back on track.]

b) Developers that want their applications to automatically take advantage of Ajax functionality.

[There is nothing automatic about the the Ajax Toolkit, it is merely the lesser of the two evils.]

Our investments into jQuery

[What was Microsoft's investment in JQuery? Some cash to buy licensing? Adding intellisense to Visual Notepad 2010 or copying the library functions, JQuery is an open source toolkit.]

are targeting people in the first batch while the Ajax Control Toolkit and the rich server controls offered by third party vendors target people in the later case.

[Wait a second, offered by third party vendors? WTF - Microsoft wrote the Ajax toolkit and the default set of server controls. I know Microsoft has A LOT of technology, more then most developers want, but does Guillaume even know what products Microsoft offers?]

We think there are developers in both of these segments and are trying to target them both just like below in the MVC section you can see we are trying to target multiple types of developers.
[What happened to DRY? Maybe Guillaume didn't get Scott "THE DOT" Gu's email or read his blog. (Come on did you think I wouldn't mention the GU!). VFP and VB developers got targeted alright, with a freaking bullseye.]

This isn’t about choosing one Ajax strategy over the other you can use one or the other or both together.
[This is a crock, first he never answered the question and second can someone tell me when Microsoft released an Ajax toolkit update? If Microsoft is no longer updating or supporting a toolkit how can Microsoft advocate using it?]

With regards to MVC, we have had in the past one framework for developing Web Applications and that is ASP.NET Web Forms. This framework was designed to make the transition from developing desktop applications to developing server-based web applications very easy it also gives developers great benefits in productivity
[Guillaume should of said, this tool has the "POTENTIAL" to give developers great benefits in productivity. How many releases do we have to wait until the webform designer gets fixed? That designer is a bug ridden mess. Moreover the html generated by the rich set of server controls and the form designer doesn't even render pages consistently across different version of Intercrap Explorer without hacks and work arounds. Most developers end up writing the html by hand in Visual Notepad I meant Studio, how is that productive? Moreover why can't we visually subclass UI controls in Visual Studio's non-functioning class browser so we can reuse them?

Let's proceed I think you get my point.]

by letting them leverage rich web controls that have lots of built in functionality

[True they do have lots of functionality unfortunately visual studio doesn't support all of the functionality. For example, the listview rich server control which by the way do we really need 6 different data grids, Microsoft simply omitted the UI and made it read only so we are coding by hand to implement it. That is sloppy crap development plain and simple. How many of us could sell excel as a custom solution to a client and expect the client to key in the formulas? Maybe we can use Microsoft's Marketing spin and explain to the client how they are getting close to the metal and this is a feature? This is exactly what Microsoft is doing to their development community. No sense beating this to death Guillaume thinks webform controls were written by a 3rd party vendor.]

While trying to grow the types of developers that can use ASP.NET we also identified the MVC pattern as a common pattern used by many other web frameworks such as Ruby on Rails and CakePHP and as a result we created ASP.NET MVC to provide a bridge to developers that like that pattern to be able to easily adopt ASP.NET and the power of the .NET framework and more generally our Web Platform. We are focusing on providing choices to various types of customers. We will continue to invest in all areas of ASP.NET (Web Forms and MVC).

[Ok here is what I think is happening: Microsoft is scared shitless of the open source community, Google's endorsement carries a lot of weight and showcase sites like facebook give it creditability, more importantly there is NO way they can buy out their competition this time like they did with Foxpro.

Microsoft is simply trying to duplicate open source technology as close as possible. This is a terrible strategy for one .BLOAT is not required in open Source and open source developers are not going to change teams most hate Microsoft. Even if these hurdles didn't exists there is still one other problem - COST! What Microsoft did accomplish with MVC is split their own community, great move.

The only way you compete with open source is by building a "BETTER" and more productive environment. This concept works, Microsoft did it with word going against Word Perfect and Excel went up against Lotus. Microsoft needs to scrap the API wrappers known as the .BLOAT framework, build complete development tools that work well and start changing their image, this is NOT a difficult formula. Until they do they are going to struggle in the web platform arena, if they haven't already lost that battle.

Let me throw this fun fact out there. MVC was invented at Xerox Parc in the 70's this is not NEW. If Microsoft was interested in this paradigm they could have moved in this direction from the start with interdev. Microsoft's movement towards MVC is a hail mary pass to try and compete with open source frameworks. Microsoft flat out doesn't have the confidence in their software development toolkits that they can stand on their own merit and attract developers.]

From a data perspective, ASP.NET works with any data solution in .NET but Entity Framework has been getting better and better with each release

[Given how bad EF is, they are not exactly setting a very high bar!]

and with the release of EF Feature CTP 5 we think that it is very compelling for web data scenarios and are working to provide more guidance on how to use it.

[Guillaume wrote "working to provide more guidance", am I the only one that had a WTF moment? Is Guillaume stating Microsoft really doesn't know how to use EF? If so then how in the hell can he say it is compelling to use, when they are still trying to provide guidance on how to use it?

What is so f#$ked up here is Microsoft, since the birth of Visual Studio, has been trying to implement a data solution and FAILS over and over again! Yet they have Visual FoxPro laying there and it F#$King works, hell most of the SQL Server indexing internals are based on VFP'S rushmore technology. Does it seriously require a brain surgeon to say hmmm maybe we should put a data centric extension language into Visual Studio.

The real issue is, Microsoft is not looking to make developers productive, their data goal is to build some type of data access strategy that the community will accept which will lock web and LOB applications into Sql Server. Move over this is CTP5 which means they released 5 versions of this thing and still can't get it right! This CTP/RC/RTM notion is BULLSHIT this is "RELEASE AND PRAY" software development. Microsoft is "using" the community as a group of "FREE" BETA testers throwing crap out there until something sticks. By labeling software in this fashion they can put this stuff out there without having to worry about quality, analysis or if it even works right. GU can always write on this blog well this is CTP6 no worries we will have it fixed when we "GO LIVE" sometime in 2020 and CTP7 will be out in a couple weeks. When FoxPro went Visual/OOP in version 3.0 there was only 6 total releases and couple service packs for each release. EF is only a data technology folks it is not even a complete development tool and they are on their 6th attempt. While they know their goal, SQL Server LockIn, they are clueless how to get there or better stated what the community will tolerate.

This is important so let me state it another way, as long as "connection string based" data access is around and implemented using standard Structured Query Language and stored procedures, portability exists and Microsoft can not accomplish the goal of SQL Server Lock In! I believe the syntax structure change in LINQ was introduced to force developers into a new paradigm and out of SPROCS to raise the barrier of entry into MySql. The bottom line is SQL Server is Microsoft's cash cow in the development area this is an expensive package and MySql works and it's free!


Director of Product Management - Microsoft

Now let's return to the 5 questions Tom asked and see how many were answered.

1) Why was Ajax Toolkit discouraged and why did you start touting jscript all of sudden? Just because of open source pressure or that they out-witted you guys?

Guillaume didn't even know Microsoft wrote the Ajax toolkit.

2) Why are you guys promoting MVC. What is the problem with regular way of doing ASP.NET sites?

Guillaume tried to spin an answer. It short we can't beat them so let's join them!

3) Do you have scientific or statistical proof that MVC is better than the original approach?

Guillaume ignored this one.

4) How many .NET developers actually use MVC?

Guillaume ignored this one as well. Many people have been asking this question and Microsoft has been silent. If the MVC numbers were high, I think it is safe to assume Soma would be blogging about it. Other then the hype of something new and the cheerleaders spinning MVC, my opinion is not many companies have jumped on this bandwagon.

5) Why did you guys discourage LINQ-To-SQL and started encouraging Entity Framework?

I think Guillaume will get back to you Tom once Microsoft figures out how to use EF. IMHO To lock developers into SQL Server.

I know this was long - there was even more there then I initially thought. If you made it this far, I hope you enjoyed reading this post as much as I enjoyed writing it. The one good thing about blogging about VS there is never a lack of material.

Until Next Time.


Wednesday, December 15, 2010

Soma's Blog Comments Regarding VS Momentum

My good friend Soma recently blogged about "the Momentum of Visual Studio". While this is mainly marketing BS, there are several comments on his blog that are noteworthy.

By the way I am not mocking Sivaramakichenane Somasegar with the avatar, that is the same one he uses on his facebook page and I included a nice message with the friend request I sent him this afternoon. In the event Soma you didn't receive my request, feel free to befriend me, here is my facebook link.

Someone named "Tom" left the following comment on Mr. Sivaramakichenane Somasegar's blog:

At our company we use Visual Studio 2010. Unlike what others claim here, it starts and shuts down extremely quickly and we have not faced any performance issues. We use C# and VB.NET - no problems at all. Those who are complaining - are you using Windows XP? VS 2010 works lightning fast with Windows 7 and Windows Server 2008 R2. No complaints about the WPF interface.

However, I do agree with some people here who claim that Microsoft pulls out of their own technologies quickly and its difficult to understand what may be thrown out next. Why was Ajax Toolkit discouraged and why did you start touting jscript all of sudden? Just because of open source pressure or that they out-witted you guys? Why are you guys promoting MVC. What is the problem with regular way of doing ASP.NET sites? Do you have scientific or statistical proof that MVC is better than the original approach? How many .NET developers actually use MVC? MVVM for Silverlight - why is not fully supported (if in fact its purpose was to make development easier!) Why did you guys discourage LINQ-To-SQL and started encouraging Entity Framework? The former is so much easier to use and with some more work from Microsoft would have more adoption than EF.

Lot to think about...

Guillaume Roques, Director of Product Management - Microsoft. Replied with the following comment.


When we think developers that are consuming Ajax it breaks into two segments:

a) Developers that want to write some client side script in their pages.

b) Developers that want their applications to automatically take advantage of Ajax functionality.

Our investments into jQuery are targeting people in the first batch while the Ajax Control Toolkit and the rich server controls offered by third party vendors target people in the later case. We think there are developers in both of these segments and are trying to target them both just like below in the MVC section you can see we are trying to target multiple types of developers. This isn’t about choosing one Ajax strategy over the other you can use one or the other or both together.

With regards to MVC, we have had in the past one framework for developing Web Applications and that is ASP.NET Web Forms. This framework was designed to make the transition from developing desktop applications to developing server-based web applications very easy it also gives developers great benefits in productivity by letting them leverage rich web controls that have lots of built in functionality. While trying to grow the types of developers that can use ASP.NET we also identified the MVC pattern as a common pattern used by many other web frameworks such as Ruby on Rails and CakePHP and as a result we created ASP.NET MVC to provide a bridge to developers that like that pattern to be able to easily adopt ASP.NET and the power of the .NET framework and more generally our Web Platform. We are focusing on providing choices to various types of customers. We will continue to invest in all areas of ASP.NET (Web Forms and MVC).

From a data perspective, ASP.NET works with any data solution in .NET but Entity Framework has been getting better and better with each release and with the release of EF Feature CTP 5 we think that it is very compelling for web data scenarios and are working to provide more guidance on how to use it.


Director of Product Management - Microsoft

There is a lot in Tom's and Guillaume's comments that we could discuss - and I may in a future post - so of course I couldn't help but leave my 2 cents worth on Soma's blog. So here are my thoughts which may or may not get posted by Soma.

@Guillaume You wrote "target multiple types of developers." There was a type of developer that "used" to be able to deliver cost effective solutions to our clients with 10-50 users using visual foxpro or visual basic. We were able to distribute custom solutions to our clients without having the burden of eating licensing costs or charging them money to write massive amounts of plumbing code that is required using VS.

Further, FoxPro was a mature product permitting business owners to make a significant investment in training their developers without being concerned about ROI. Which is a significant concern with your current trends especially for web development. We also could develop solutions quickly due to VFP'S robust object model with a functional class browser, RAD tools and more importantly a data centric language all of which are absent or useless in Visual Studio.

Given it is not possible in Visual Studio to generate a lan database application faster (I am willing to defend this statement as I have done in the past if needed) with the same or lower cost of ownership then VFP, my question is what is your plan to target that "type of developer"?

With all due respect, the only path I see which is on target for those "type of developers" unfortunate enough to fall into this category is moving to MySql, Open Source and continue to use VFP for desktop application solutions. This is a lesson I learned too late in the game.

Perhaps instead of trying to cater to/attract the open source MVC developer don't you feel it would be wise to first address the needs of your current/former customer base that was orphaned when VFP and VB received their end of life?

Basic business 101: it is much cheaper to retain a client then it is to attract a new one.


It should be an interesting read if I get a reply. I would love Microsoft to generate some sample code which I could translate to VFP for a comparison, but like last time, I doubt this will happen. Mind boggling because I am sure Scott "THE DOT" Gu or one of his team members should be able to slap a small DB winform application together to put me in my place.

Happy Coding!

Until Next Time....


Tuesday, December 14, 2010

Microsoft VS The Virus ....

Last night on my XP box which has a ton of service pack installed and using Intercrap Explorer 8, I was browsing a wikileaks mirror site and caught the think pointe virus.

Not only did it slip by Microsoft Security Essentials it crippled the software such that it wouldn't updated the virus def files. This thing causes all sorts of havoc on the OS, IE lock ups, browser redirects, hides itself from the task manager, system tray warning and even changes the XP UI. The icing on the cake are the dialogue windows that the virus displays, they look exactly like Security Essentials caught the virus. I even did a double take when they popped up.

I figured no big deal boot into safe mode and restore, well that didn't work. I found a KB and manually updated the security essentials files then let it cook for about 3 hours scanning the PC and it still didn't find anything. It gave this infected crippled PC a clean bill of health.

Next try was Adware by lava soft, it found a couple problems but didn't totally fix things. I downloaded Malwarebytes which finally cleaned the PC.

I was curious, given I knew I could get rid of the virus, so I went back on the same site with Google Chrome - which by the way the newest version of the browser is very impressive and snappy definitely worth checking out - and the virus was not able to infect the PC.

Of course I have to tie this experience into Visual Studio :0) ... The thought crossed my mind given all the security BS we have to deal with in Visual Studio for web development, strong type declarations which cheerleaders argue brings stability (another blog worthy topic - which wasn't required in Visual FoxPro) and a ton of bloat in the .BLOAT wrapper classes, how did IE let this infection occur?

We also need to consider the virus was probably written by a single person or small group of people yet they managed to cripple XP while rendering I.E. and Security Essentials useless. Furthermore two smaller software companies writing free malware programs found and fixed problems Microsoft missed! Am I the only one that doesn't get how this can occur at Microsoft with all their brainpower and resources at their fingertips? Folks this is a freaking embarrassment plain and simple which happens so often, I guess, now it has become an accepted standard!

I wonder if the problem is Microsoft has so many layers and bloat on top of layers of bloat in their source code they have reached a point it is now virtually impossible for them to lock down their software anymore and as a result developers are stuck dealing with all this security crap and ass-backward programming hole plugging workarounds that slows down development? Moreover should their best practices even be followed when they can't make them work effectively?

Some things to think about ......

Till next time


Monday, December 13, 2010

Separating from Concerns - Stop Using Visual Studio Is One Option

The MVC cheerleaders and Scott "THE DOT" GU make a big deal out of separation of concerns like this is some great break through. This is nothing new or anything to get excited about we have been easily pulling this off in Visual FoxPro for years through N-TIER and so has rails through MVC.

Now some of you maybe thinking VFP wasn't a web-tool, actually it can be used for web development which is out side the scope of this blog post but I used the same VFP middle tier classes in classic asp applications and in desktop lan applications. But more importantly if you understand design patterns then you would realize, it should NOT matter what the UI is, who cares, if it is a webform, winform, a service or mobile device. It is Microsoft's inability to build a productive tool which is the only reason this is a concern.

If Soma and the boys at Microsoft would have followed an N-TIER thought process and included a "HEAVY DUTY" class browser and focused developers on building a code repository that could be used across any UI seamlessly with VS containing an open source code generation layer that handled all the plumbing code NOW that would have been a "GREAT" tool.

The part that frustrates me, yes even more than standing next to an Indian at a public defecation pool with a bad case of diarrhea, is how close FOXRPO was to accomplishing this feat. If they would have added a form base class of type webform it would have worked. I actually often thought of doing just that and have it churn out the HTML and CSS based on classes. Damn I should have Soma's job lol.

Instead Soma and Microsoft got off on this tangent of composite UI controls and never ending layers of bloat, combined with bastardized paradigms that require a vast amount of "more" work then legacy Visual FoxPro did to "separate concerns" which is highly concerning.

I believe MVC separation of concerns is based more upon a flaw/lack of understanding with regards to Webforms, competing with ruby and implementing a "new" but copied design pattern then really "FIXING" the design pattern problem which is deeply rooted in Visual Studio and .BLOAT.

I will get off my soapbox and further explore Visual Studio's MVC separation of concerns.

N-TIER patterns are one way developers could "truly" separate concerns, here is a quick refresher on how this works.

The UI Layer - Handles user input and sends and retrieves data to the business layer.
The Business Rules Layer - Validates information, performs processing and connects to the data access layer to send and retrieve information.
The Data Access Layer - Is responsible for connecting to the data source. In some cases this is a base class for the business rule class or can be a separate layer in the event we need the ability to use different back-end databases such as My Sql, FoxPro, Sql Server, Oracle etc...
The Database - This is merely My Sql, SQL Server, Oracle, Access, FoxPro etc...

N-TIER is linear: UI hits the middle tier and the middle tier hits the data tier.

With MVC the tiers are triangular, views hits the controller and model and the controller hits the model. Even thou it is a triangular pattern that still doesn't mean we should not be concerned with code reuse.

In Visual FoxPro given it had a "functioning class browser" it was very easy to assemble these layers and setup a class "tree" hierarchy. Developers only had to concern themselves with application code and there was a "true" separation of concerns. Fox developers weren't not concerned with writing plumbing code or dealing with framework syntax that is more bizarre then crossing an intersection at rush hour in India.

With Visual Studio the class browser is mainly a nice looking UI plumbing code template generator that functionally does absolutely nothing mentionable. The VS class browser is unable to visually subclass UI controls amongst other things, in short, it is just about as fast to build your Visual Studio classes by hand in notepad.

If you want a more in depth comparison here is a link regarding the UI layer and class browser with code samples. When I went back and reread that post it is amazing how consistent I am which is more then I can say for some cheerleaders.

Now that we have a basic understanding of how concerns can be separated and the difference between VFP'S class browser and Visual Studio's want-a-bee class browser implementation lets explore what happens in an MVC application.

In the UI Layer of MVC we end up with some nice HTML, if we are good little coders. Next we have to inject the data access, business rules and validation to make the html do something productive, unless of course we are Scott "THE DOT" Glue then making it do anything that may reveal the truth of how messy VS MVC is, well, lets just say is out side the scope of his specs.

In most "GOOD" applications when the user tabs out of a field we should give some feedback to let the user know if their input is not valid. This is where separation of concerns falls apart with Microsoft's MVC implementation. In MVC field level validation is pulled off by using Javascript, Jquery and alligator script syntax etc... bloating the hell out of our NICE html or we could use the the range attribute property of EF (which I discussed in a prior post). If you are sharp, you should immediately see we have already lost our separation of concerns and the code is "NO LONGER" dry.

Despite what the MVC'ERS are bragging about here is what is "really" happening in the controller code with most applications I looked at in the field and sample code written by cheerleaders. The controller becomes this massive bloat of spaghetti code combining data access, linq, business rules, authentication and data sets with varying degrees of duplicated code in the UI. Worse yet the code is further duplicated from controller to controller and also into the web services because developers are NOT using "true" OOP design patterns.

I found a brief video that helps explain this point a bit more, enjoy. :)

There are several reasons why I believe this happens:

Microsoft ignored the model layer in their paradigm making it difficult to work with and now they seem to be forcing EF as the model layer, good luck with that one. Some developers haven't worked in C++ or VFP therefore don't have a firm grasp of OOP programming concepts or design patterns and fail to setup a good class structure if they use any class libraries at all. They merely are following some false hope and Microsoft marketing efforts to make them believe because a controller layer is involved in their application they are following OOP design principles and therefore their concerns are separated.

Anyway lets look at some code shall we, that may help...

This was pulled right off the blog of a Visual Studio cheerleader to validate a login in MVC.

Here is a very real world scenario.

A programmer is working on a site and "googles", log in validation + MVC, they find this sample with some documentation and implements it. The blogger is an Indian MVP from Microsoft so he has to know what he is talking about right? - come on do you really think this doesn't happen? My good friend Soma was blogging about script junkie, trust me this shit happens all the time!

A few minutes later, cool, the site is working, users are getting in and some users are denied access. The developer is happier than a two-dicked billy goat and thinking wow those cheerleaders f'ing rock man!

A month later they receive a request to add in a web-service to this web app that requires a username and password before it can return some data. So the programmer cracks open VS/.BLOAT then armed with C# and a KB article works some magic and the web-service is working.

I think you can see where this is going, we have validation crap in the controller, the html and a web-service.

And folks I will say it again this unfortunately is "REAL WORLD" stuff. This is how quickly an application turns into bloat because a "true" design pattern was not implemented from the get-go.

Don't worry I get it, you been brainwashed into thinking webforms controls are bad due to viewstate and extra lines of code VS injects into the html along with losing control over the id's then there is also the postback issue etc... but isn't the real solution to fix webforms/VS? Isn't using the code behind to bind up a list view and act as a bridge between the middle tier and UI a "workable solution" to a bad situation when it comes to separating concerns? If the web-forms code behind is merely calling classes in a middle tier how is that not separating concerns?

Some closing thoughts.

Look there is nothing wrong with MVC as a pattern, the issue is Microsoft's tools are lagging behind the technology (debugging, intellisense, class browser etc) and what Microsoft's final MVC implementation will be like is anyones guess, if it even makes it to maturity. Companies have spent an enormous amount of time and money jumping on the MVC bandwagon early and now stuck supporting some really ugly code.

Many cheerleaders are hyping this technology simply because it is new and "cool" and that type of bullshit doesn't do anyone much good. Pick technologies because it serves a purpose to your development efforts not because it is cool or because "DOT GLUE" or some freaking cheerleader says so. Using MVC doesn't mean separation of concerns, you still need a well planned out class structure or you will just end up with spaghetti code in a new framework.

Webforms is a mature product that will be around for a while don't dismiss it on a whim, it could end up saving you a significant amount of development time.

That is enough for today.

Happy Coding!

Thursday, December 9, 2010

The Death Of Foxpro and the Birth Of the Entity Framework - another CTP anyway

There was an estimated 500,000 FoxPro developers at FoxPro’s peak around 1995, and millions of computers with FoxPro apps running (either DOS or Windows based) according to Ken Levy’s Blog. Still Microsoft in their ultimate wisdom- or lack thereof- killed VFP to force developers into the .Bloat/Visual Studio environment.

Today Scott “The Dot Glue” is hyping AND spinning EF CTP 5 on his blog. Instead of my personal rants about how bad EF is, let’s take DOT Glue’s own example code and rip it to shreds with” code first” and see the future and the past to determine if we are really better off by comparing the EF to VFP.

After all “Source Code Doesn’t Lie”…

The Entity Framework CTP 5

Step 1 Model Class and DB Context classes.

Actually we have to build up the tables first, just a minor detail...

So let’s see what these model classes look like...

Public class Product
Public int productid { get; set }
Public int categoryid { get; set }
Public string productname { get; set }
// WTF is up with the ? talk about an after thought…
Public Decimal? UnitPrice { get; set }
Public Bool Discontinued { get; set }
public virtual category category { get; set }

Now we have to jerk with the category table class

Public class category
Public int categoryid { get; set }
Public string categoryname { get; set }
Public string description { get; set }
public virtual ICollection Products { get; set }

Public virtual is one of the bullshit commands that Microsoft loves since it struggles to do anything that is straightforward in Visual Studio. Basically we have two tables or collections, products and categories and there is a relationship between the two that is lazy loaded so EF needs a property for some screwy reason.

Now we need to create a data context – No I am not shitting you

Public class northwind : dbcontext
public dbset Product {get;set;}
public dbset Category {get;set;}

Side note: You need less then and greater than signs around the table names. The blogger editor stripped them out.

Thanks goodness THE GLUE doesn’t use any real world examples I would spend hours hand coding the classes.

Step 2 Configure the connection string

No big surprise a connection string in the app.config, if vfp was accessing a sql database we issue a sqlconnect no biggie either way.

connectionString="data source=.\SQLEXPRESS;Integrated
User Instance=true"
providerName="System.Data.SqlClient" />

Step 3 Pull a collection from EF

DOT GLUE used linq in this example

Personally I hate the linq syntax it is sort of like reinventing the wheel and building a CUBE instead of a circle.

NorthWind Northwindw() = new NorthWind();

var p = from p in northwind.products
where p.category.categoryname = “Beverages”
select p;

Step 4 an EF update

NorthWind Northwind() = new NorthWind();
Product.Product = northwind.products.find(1);
Product.UnitPrice = 2.33m;
Product.Discontinued = false;

// this is where the VS Cheerleaders have an orgasm and praise gu!

NOW Let’s run through this same example in VFP

Yes no class code or data context required.

For humor sake if we wanted a record object it would look something like this.

Select product
Scatter name oProduct blank
Select category
Scatter name oCategory blank

Yes that is correct in Visual FoxPro we use two lines of code no cryptic syntax no virtual relationship command. Even more important if the base tables structure changes no change is required to the code.

Next The Glue built a collection using linq… a cursor will work just fine in vfp.

Select * from products
inner join category on products.categoryid = category.categoryid
where categoryname = “Beverages” into cursor p

That looks familiar Native SQL in VFP sweet! Yes the same syntax can be executed against a sql database using sqlexec. This is important makes sure you read my closing comments with regards to sql commands and ef!

Perform an Update

Select product
= seek(1) // This finds a record

Don’t even complain about what happens if the record is not found THE GLUE didn’t handle that case either. Yes we could add the workarea and index into the seek command and use one line of code instead of two.

Scatter name oProduct
oProduct.UnitPrice = 2.33m;
oProduct.Discontinued = false;

// this is where VFP developers should be laughing at EF as we have been saving records with one line of code since foxpro for dos.
Gather name oProduct

Is it just me or are you having a WTF moment as well.

Folks Microsoft killed Visual FoxPro and now we have the entity framework don’t you love progress Microsoft Visual Studio style!

EF Validation

Next THE GLUE blogs about two property attributes: range and required. My first instinct when I read this was that is pretty cool. Then I sat back any thought about it for a minute and SAID this is bullshit and here is why.

If there is a UI involved the range and required validation should occur in the form! Now you are thinking yeah Mark you missed the case of a web-service and reusability. Fair enough but wouldn’t it be better to catch this in the business layer object of the middle tier and avoid a round trip to the server and connecting to the datasource etc- after all you die hard performance based MVC guys are worried about view state in the HTML being downloaded from the server slowing things down you should crap yourself if you have to load the EF data context when it isn’t needed.

Ironically in the next paragraph THE GLUE discusses Keeping things DRY

The “DRY Principle” stands for “Do Not Repeat Yourself".

Don’t you wish Microsoft came up with this idea with regards to the .NET FRAMEWORK that is all redundancy or how about 6 different Datagrids and list views and isn’t there two different View Engines for MVC. Better yet how about all the different flavors of Vista ... What an Joke!

The GLUE wraps this post up by getting us excited about other improvements

1) EF Code First CTP5 exposes a new set of change tracking information that enables you to access Original, Current & Stored values, and State (e.g. Added, Unchanged, Modified, Deleted). This support is useful in a variety of scenarios.

Well this sounds like VFP GetNextModified and GetFldState to me nothing new there.

2) EF Code First CTP5 now allows raw SQL queries and commands (including SPROCs) to be executed via the SqlQuery and SqlCommand methods exposed off of the DbContext.Database property. The results of these method calls can be materialized into object instances that can be optionally change-tracked by the DbContext. This is useful for a variety of advanced scenarios.

By advanced scenarios does THE GLUE mean cases that Linq to entities can’t handle or does linq to entities perform so poorly under some instances you really should use an SPROC? Regardless this was available years ago in VFP in the native VFP SQL statement and does SQLEXEC sound familiar to VFP developers?

THE GLUE writes in conclusion, EF Code First provides an elegant and powerful way to work with data [OBVIOUSLY HE NEVER USED A DATA CENTRIC LANGUAGE BEFORE LIKE VFP]. I [“THE GLUE”] really like it because it is extremely clean and supports best practices [IS THERE REALLY SUCH A THING AT MICROSOFT AS BEST PRACTICES WHEN TECHNOLOGY AND PARADIGMS ALMOST CHANGE DAILY?], while also enabling solutions to be implemented very, very rapidly [THIS HAS TO BE A TYPO]. The code-only [HE NAILED THAT ONE THERE IS A TON OF CODE IN VISUAL STUDIO APPLICATION DEVELOPMENT AND NOT MUCH RAD] approach of the library means that model layers end up being flexible and easy to customize….. [OH REALLY WE MAKE A CHANGE TO A DATA STRUCTURE AND LETS SEE WE NEED TO RECOMPILE THE EF AND CHANGE ALL THE CLASSES REAL FREAKING EASY]

I think it would behoove THE GLUE to use VFP for a while before writing a blog post as according to my blog post there is nothing new or elegant based on the sample code Scott GU is blogging about when using the Entity Framework. Obviously VFP should be the winner but even if you want to give the THE GLUE the benefit of the doubt, look there is not a thing in this example that is new or different at best this example is on par with VFP technology.

The funny part is the GU is getting praised on his blog for EF when it is doing nothing but causing more work and I am sure a few cheerleaders will flame me for pointing out just how bad the new EF technology really is…. And here I am trying to make their jobs easier by suggesting Microsoft builds (for you anyway - I went open source for all new web projects) development tools that work!

When all is said and done aren’t you glad source code doesn’t lie!

Until Next Time

Happy Coding!


By the way in case you are interested here is the link to the no confidence petition for the entity framework started by several MVPS.

Donn Felker Android and MVC

If you read my prior post I picked up an android phone over the weekend. This morning I checked out some android videos here is the Google Android Sessions video link if you are interested. There is some cool stuff being discussed if you are into mobile droid development or at least curious about it.

Then I went browsing around the interweb for some books on the subject and I came across a book and blog by Donn Fellker. He seems like a knowledgeable fellow, so I googled his name and came across an article he wrote for code magazine. Granted I am not a fan of CODE magazine by any stretch of the imagination, but his article summed up exactly what I have been blogging about perfectly with regards to MVC. I hope I don't upset Donn by reprinting an excerpt of his article here but it is definately worth sharing. (Donn if you find my blog and want this removed just let me know - I will still buy your book anyway :) )

Here is the link to the full article.

The point being is this, the Microsoft Cheerleader Squad led by Scott "The Dot Glue" are trying to convince developers that MVC is a productive development environment with their pride and joy showcase application, Nerd Dinner. Look don't buy into! While I don't know Donn personally or what his opinion is on Microsoft MVC but at a minimum, his acknowledgement that MVC html code gets "ugly" even with the "simpliest" of tasks is a breath of fresh air amongst all the hype that is being spun.

The bottom line Microsoft MVC is such a mess Microsoft rushed razor out the door and it is also the reason for the birth of the spark view engine.

Happy Coding!

Until Next Time


Monday, December 6, 2010

Micrsoft the Next IBM

I checked out Scott "The Dot Glues" blog and he posted websites with great tips to do this or the other thing with Visual Studio and .BLOAT. For lack of something better to do I clicked on a couple links and found pages of steps and tutorials on how to do stuff with Visual Studio.

The first thought I had was, Scott "The DOT GLUE" doesn't get it! If in order to use a software development tool it take approximately 50 links on you blog and pages of tutorials to scratch the surface of steps required to make a tool perform tasks that should be native to the tool set, the software development tool FAILED! Given all the classes and bloat in the API wrapper classes known as the .NET framework that framework should do it all.

The issue is, .NET is NOT a FRAMEWORK, .NET's classes for the most part are merely wrappers over the operating system API much of which is still based on "LEGACY CODE". .NET is a mish-mash over whatever Microsoft has laying around or what some team is using at this moment.

I still can recall when YAG wrote the codebook for VFP. In approximately 200 pages with pictures you could have an application up and running with a pretty good idea of the basics of Foxpro. When was the last time you saw a visual studio book which was 200 pages long that explained this tool. It takes 200 pages just to unwind the freaking app.config and global.asax files.

Even with all that bloat, multiple frameworks and software involved in Visual Studio and blend you know, other then netflix I can not even think of one mainstream website or application for that matter written using Visual Studio and .BLOAT that is considered "cool".

On the operating system front Windows XP is the release when Microsoft finally got their os right, only to destroy it with Vista (gee that sounds familiar they did the same thing with Visual Studio after 6.0 was released). With Windows 7 I don't see any great adaption occuring. Window 3.11 and Windows 2000 were the last OS that had any big fanfare.

In the development tool arena Visual Studio 6.0 was the last good tool set that wasn't a bloated bug ridden mess. With MVC I actually get physically ill when I look at how far Microsoft's MVC implementation has managed to set software development back in terms of productivity. Perhaps only punch cards was more unproductive to use. Those cheerleaders that state we need to "get close to the metal" as justification for MVC are full of themselves and should spend more time deflating their overblown ego so they can drift back to reality instead of blogging. Here is a thought you want to be a real programmer then code in assembler so you can get real close to the freaking metal. Congratulations to Microsoft for splitting their own deveopment community.

On a side note ... Can anyone answer a couple questions, what is so freaking hard about building a webform designer that works? Damn this thing has been out forever and still unstable. I maybe could see a page rendering differently in firefox but IE doesn't even render correctly and Microsoft owns the browser's source code WTF? Further why can't anyone develop a class browser for VS that allows you to visually subclass UI controls? Even VFP could do this! Microsoft and the Cheerleaders love using the term OOP with visual studio but I seriously doubt the cheerleaders even understands what OOP means anymore. Soma or DOT GLUE do me a favor talk to Calvin I am sure he can help you with the class browser and explain to you why classes are important even at the UI level. Yeah I know you can hard code classes but this is supposed to be "VISUAL" studio not notepad with intellisense.

Anyway . . . .

Browsers: Internet explorer sucks balls each version has it's own set of hacks to get a webpages to render consistently across versions. Here is a hint for the IE team. FireFox is open source look at the code to see how to make a page render the same regardless what version of the browser you are using, you guys at Microsoft are great are stealing stuff go with what you know.

Websites: Live is dead. Bing is worthless and MSDN does anyone still use it. Not a single showcase website written by Microsoft. Sure there is Nerd Dinner that is a freaking showcase site and under a million lines of code .... How cool is that?

Office is still a good tool but the office team uses their own libraries and avoids .NET like the plaque.

SQL Server: I do miss using it on a daily basis, that is the one development tool Microsoft is yet to screw up.

Now we have the cloud coming. Which 95% of the average people are clueless what it does and for everyday users it serves no purpose. Again this is a business level technology which I struggle to see how businesses would be willing to turn over their data and files to Microsoft. My prediction, the cloud will have as much longevity as Microsoft BOB with the only exception being a few companies who see it as a way to eliminate some network cost.

I truly believe Microsoft is headed down the road of becoming the next IBM they have totally lost the "coolness" factor! If you dare question this logic here is a brief story.

I went shopping over the weekend to buy my grandson an IPOD for Christmas, my first stop was best buy. I looked down an aisle where Microsoft software was shelved then moved to the computer aisle there was no lines or enthusiasm people just stood blank faced while looking at the pc and the wore out windows paradigm like it was an AS400 mainframe.

I left and went to the mall, I walked into the apple store and it is packed with people, most of them were playing with apple technology or visiting the cool genius bar. People were calling ahead for reservations to talk to a sales person and exchanging ideas, in general they seemed excited about technology.

While waiting to make my purchase I had a vision of what it would be like if Microsoft had a Windows Store. There wouldn't be any employees at Microsoft's genius bar but video chat to Microsoft India where the support people would wear red polo shirts and ask you call them Bobby, Sally, Billy, Dick or Sue. Once you pose your question they would read a KB article to you, painfully detailing each of the 185,232steps required to upload a picture from Windows through the cloud to your facebook page, then assume you are an idiot for missing one of the steps which of course caused the process to fail and you have to start again. Moveover in the background you can watch them argue with each other over which way is the best way to upload your picture since of course there would be 531 ways to perform an upload and none straight forward. The mood in the Microsoft store would closely resemble a DMV office. The monitor above the bar, that displays the waiting list, would show the blue screen of death because a server in the cloud experienced a C0000005 fatal exception due to having the wrong version of the .BLOAT framework installed.

I suppose that is why Microsoft doesn't have stores, Ballmer is smart enough to have the same vision as mine, unfortunately he is not smart enough to fire the entire Visual Studio/ .NET management team then scrap Visual Studio and start over. Unless he is concerned that everything Microsoft does is worse then it's previous release, a lesson learned from vista.

After picking up the IPOD, I hit the wireless shop next. There stood the Windows 7 phone display, I looked at it for a moment but any interest I had in the phone was quickly lost when I thought of Visual Studio then proceeded to the android section where I ended up walking out with a 4g droid phone so I can "play" with mobile software development. Yes folks the ripple of effect of Microsoft Visual Studio even affects their phone sales.

Until Next Time.

Happy Coding and Think Open Source!


Wednesday, November 17, 2010

DOT GLUE Firestater

It would be laughable the extent to which Scott Gu (DOT GLUE) will say or do anything if it wasn't for the fact corporations are spending money believing the ramblings of the cheerleaders like DOT GLUE and following their every word when making technology decisions.

DOT GLUE is blogging about the Silverlight firestorm event (firestorm is a proper name for it given that is what Microsoft started with silverlight when it failed to mention it's existence at a keynote) which is a complete contradiction to the path Microsoft appears to be following by those inside Microsoft that actually "KNOW" what they are talking about.

A commenter in mini-MSFT says that his/her “team got a direct message not to use the [Silverlight] technology.” Dynamic languages are also dying at Microsoft due to lack of interest from the public remember iron ruby?

Here is another excerpt I pulled off a blog today.

Microsoft to embrace and extend HTML 5?

Microsoft watchers are pouring over a series of Twitter posts from former Silverlight Product Manager Scott Barnes, now a user experience specialist at Australian development consultants Readify.

According to Barnes, just back from a week of briefings at Microsoft, there is intense internal debate about the future of HTML 5, newly implemented in the forthcoming Internet Explorer 9, and the Silverlight plug-in. He tweeted:

“Right now there’s a faction war inside Microsoft over HTML5 vs Silverlight. oh and WPF is dead.. i kind of was..but now.. funeral.”

WPF is Windows Presentation Foundation, the rich user interface framework that was originally intended to become the primary GUI API for Windows Vista, but was sidelined when Vista development was “reset” in 2004, and does not feature strongly in Windows 7. “There’s no-one working on it beyond minor touch-ups,” says Barnes.

“HTML5 is the replacement for WPF.. IE team want to fork the HTML5 spec by bolting on custom windows APi’s via JS/HTML5”

This would be a classic “embrace and extend” strategy, encouraging developers to create Windows-specific HTML 5 applications. It sounds like Microsoft is once again trying to create a browser monopoly like it has with windows, GOOD LUCK with that.

Folks Scott Gu is either completely detached from the realities of what is going at Microsoft or is in his own little cryptic bastardized kingdom. After looking at MVC I believe the later is true.

You can't trust Microsoft when it comes to technology they have NO PLAN or idea what is going on. With pre .BLOAT and VS tools like VS 6.0 it didn't matter what the internal conflicts at Microsoft were as their development tools was a separate product line. Now with VS and .BLOAT everything that happens internally directly affects developers as it is all intertwined into VS and .BLOAT which is why this product WILL NEVER have any stability. This type of nonsense is exactly why my decision to go open source was the correct one.

Your friend

Sunday, November 14, 2010

What is on the horizon at Microsoft

I was curious to see how Microsoft was using their Great Visual Studio technology and stumbled across a few leaked videos.

Check it out and see the future, today!

Apple has the IPOD and Microsoft has the Big Ass Table!

Windows Mobile Phone - Is my friend Soma in this video?

Kinnect for XBOX 360

Of course Bing is the Microsoft Showcase so let's not forgot about it.
Wait I think most webusers already have.
What makes this so funny is this is not a parody.

Here are a few more worth watching!

One of my favorites

Happy Words Windows 7

Vista - Where are we now?

And of course the Windows 7 vs Mac Ads

Hope you enjoyed them!


Thursday, November 11, 2010


This is my first blog post in a while, I took some time away from programming. To bring you up to speed, I stopped using Visual Studio and .BLOAT and I made the switch to PHP, MYSQL and playing with Ruby a bit. Seems odd after 20+ years of programming and strictly with MS Tools since VFP 2.0 and interdev but it is worth it. Granted the open source tools may not be anything to get excited over and the syntax a little cryptic but it is nice to know you can actually learn a language or technology and it will be around a month from now.

On a side note: many of you may not be aware of this but I was a Microsoft cheerleader for VS 6.0, Sql Server and VFP 9. Now I dread even touching their software. My main pc setup I run linux and open office and another PC running XP used for Visual Studio and testing the sites on I.E. so I can put all the hacks in required to render a page correctly.

I just read the blog postings on the Internet about silver light, now Microsoft is back pedaling with silver light after they slipped up and let the cat out of the bag that this is a dying platform once HTML 5 is released. Yeah so what netflix uses silverlight I wonder how much Bill Gates paid them.

Here are some other tool sets or frameworks (I use that term loosely related to Microsoft) if you still think Microsoft has any plan for it's development product line, pop fly is in the grave after all the hype my Friend Soma wrote on his blog. From what I been hearing from a reliable source the Linq to Sql team has been dissolved and the ADO.NET team is taking it over, which they have already stated they are no longer enhancing the product. So the BLOATED slow and unstable entity framework with LINQ will be your tool of choice for data access, have fun! Remind me again when was the last time the MS Ajax toolkit has been updated?

Now all my new development is using open source development tools, I love knowing I am no longer feeding the Microsoft machine or supporting the economy of India. I am so glad I am outside the webforms mvc drama, hats off Microsoft for splitting your own development community. I still get the occasional client for which I have to painfully open Visual Studio. This one last week I had was blog worthy.

I had to implement several changes to an MVC website, I open up the source code and it is over 2 freaking million lines of code using the BETA version of MVC which is not compatible with the production version, WTF! Folks it took 2 hours to configure a computer just to maintain this code. Where is the productivity in that mess.

Trust me THE GLUE and the MVC lovers are full of shit about MVC. This company has 15 programmers supporting this single website and still required my assistance in implementing these changes because it turned into such a bastardize amount of spaghetti code and the performance was subpar. How can you expect anything else when the following array of technologies are used:

1) .BLOAT Wrapper classes
2) Jquery
3) Javascript
4) Blend
5) C#
6) CSS
8) Visual Studio
9) MVC
10) Webservices
11) SQL Server Stored Procedures
12) Entity Framework
13) LINQ
14) Dataset - to fill in the holes, like reporting, where LINQ and EF don't work
16) AJAX
17) ASPX - for somes pages that the MVC framework was to time consuming to use.

Folks this is what DOT GLUE doesn't tell you about the learning curve and technology overhead when you get into Microsoft MVC and blindly implement stuff after reading the blogs written by cheerleaders. Seriously MVC is 1970's programming writing htmlhelper a million times and alligator syntax it is seriously a step back closer to classic ASP.

Sure there are so many things wrong with this scenario as personally I wouldn't recommend using any Microsoft tools until service pack two is released (but the problem is Microsoft tools never make it into production anymore with any of their development tools they just call everything a RC, CTP) and definitely would NOT use beta software on a production website, but besides the point, 2 million lines of code what the hell are people thinking. Is that worth getting "CLOSE TO THE CHROME or METAL" however microsoft and the cheerleaders are spinning Scott Gu's and the Visual Studios Team's inability to build an innvoative productive development paradigm, write contols, class browsers (that works) and build designers. Given they can't write anything worthwhile on their own they copied Rails or at least tried to in their own BLOATED fashion. Disagree it is bloat refer to the above list.

Look point blank, Microsoft's MVC has zero RAD tools, no controls and for the most part you are on technology overload. Are developers that in love with .BLOAT that they pay to use an over bloated set of Operating System Wrapper Classes in controllers? If you want the MVC model use Ruby it seems to work well and the best part is it is not based on Microsoft's .CRAP wrapper classes.

What I find amusing is how Microsoft's is scrambling now to release the new MVC Razor view engine in hopes it fixes all the problems with their current view engine for MVC.

Then I read Scott GU'S blog and there are all these want-a-bees suck ups praising DOT GLUE for MVC release candidate 78,233 while DOT GLUE is posting comments about all the hacks and bugs in that framework and it has only been out a couple days. Didn't MSFT test any of this software? given DOT GLUE only writes elementary school tutorials on his blog that the want-a-bees cream over you know he won't find a bug in that framework, what a freaking joke.

Yes you read that correct DOT GLUE is stating in short YES WE F'D UP ANOTHER RELEASE and still the MSFT cheerleaders and want-a-bees are thanking him. This is directly off the DOT GLUE'S blog. "... If you installed the async CTP and the new MVC RC3 .... You will likely experience problems in VS with debugging (potentially other things)... I didn't paraphrase the (potentially other things) DOT GLUE wrote it - so what he is saying is he doesn't even know what the hell will go wrong.

Every person that posts thanks scott or cool, great job, I have a question for you what the hell is wrong with you? Look I will spell it out for you THE SOFTWARE DOESN'T WORK OR INSTALL CORRECTLY without jumping through hoops and Microsoft is even losing control of their technology base. Let me ask you this when was the last time a client told you good job for giving them software that is unstable? Moreover if you bought a car and the door wouldn't open and you were told just crawl through the trunk would you be happy. Why do so many developers HOLD MICROSOFT and DOT GLUE to such a pathetic level of competance?

The funniest post was some dude wrote: (and I am paraphrasing here) I opened up the MVC release candidate and I started to cry because this that and the other thing didn't work.... and DOT GLUE wrote some crap back like don't cry blah blah blah. I literally became physically ill reading his blog. Folks there is a reason this tool is ONLY being used by a small number of websites, regardless of how much spin DOT GLUE puts on it, its a trainwreck!

After being involved in the open source community for months now, I think there is such a negative impression and distrust towards Microsoft, and rightfully so, there is not a development tool they can release (and that includes Webmatrix - which is like an unfinished version of "access" for web development and still .CRAP based) that would gain back the developers that have left their camp. Soma is blogging about giving .BLOAT away under the Biz Spark umbrella to trick users into using it. Look, Microsoft doesn't care about your success, just ask any VFP or VB programmer, this is a marketing gimmick - don't buy into in. Microsoft is fully aware of the cost to change platforms so they give you their tools for free for 3 years (which is how long its take to write 100 million lines of code and hire a tribe of indian developers to use .BLOAT) knowing there is a high cost barrier to change platforms.

Unless Microsoft changes course, gets their head out of their asses and fixes this mess in 5 years the only folks still using .BLOAT and Visual Studio will be intranet corporate enterprise accounts, it will be a non-existant player on the web - sort of like BING (But it's Not Google search engine) and Live (is that even still around?).

Don't expect me to rip open source EVER, the software is free and it is the lesser of the two evils. Moreover the open source community didn't issue an end of life on every single development platform they had that worked, like Microsoft did. I find it completely ironic there is MORE stability in open source then with Microsoft tools.

Enough for now take care everyone.

Your Friend

By The Way, If you read my Bing blog post when it first was released, I predicted it's failure and sure enough it happened, so what does Microsoft do, it gets balled up with yahoo and buys Bing's way into facebook and still can't make any inroads. Bing was written using Visual Studio and Google and Facebook weren't, need I say more.