<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5373564392160793625</id><updated>2011-11-18T15:54:04.682-08:00</updated><category term='Webforms'/><category term='LINQ'/><category term='Visual Studio'/><category term='Microsoft'/><category term='visual studio 2008'/><category term='MVC'/><category term='SQL Server'/><category term='Window Presentation foundation'/><category term='.NET Framework'/><category term='Donn Felker'/><category term='Somasegar'/><category term='Chrome'/><category term='DOTBLOAT'/><category term='Visual Basic'/><category term='Internet Explorer'/><category term='Class Browser'/><category term='Guillaume Roques'/><category term='N-TIER Design'/><category term='Scott Gu'/><category term='WPF'/><category term='Entity Framework'/><category term='.NET'/><category term='Visual Foxpro'/><category term='Silverlight'/><category term='Windows 7'/><title type='text'>DEVELOPERS HELD HOSTAGE: THE VISUAL STUDIO CRISIS</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-7684019563624803938</id><published>2011-02-19T07:45:00.001-08:00</published><updated>2011-02-19T10:02:41.830-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Weekend Thoughts</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Windows 7 Mobile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I found the following article in PC WORLD which I thought was amazing. I can definitely see mobile phones being the future and for Microsoft to screw this up is incredible. Below is an except and the link to the full article.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;Windows Phone Reloaded: Can We Trust Ballmer's Promises?&lt;br /&gt;Microsoft promises multitasking, HTML5, and more for its underperforming mobile OS&lt;br /&gt;&lt;br /&gt;Yesterday, Ballmer announced that Windows Phone 7 would be updated late this year to make Internet capabilities a "first-class citizen" (his words, not mine, though it's nice to see him agree that the early version was second- or third-class). Ballmer promised that Microsoft would address the features currently missing from Windows Phone 7, such as HTML5 support and multitasking.&lt;br /&gt;&lt;br /&gt;Microsoft previously said it will add cut and paste to Windows Phone 7 this year as well. Not so clear is whether Microsoft plans to fill in all the security and management holes that disallow its use in most corporate networks, such as lack of VPN and on-device encryption, as well as substandard support for Microsoft's own Exchange ActiveSync policies (it supports fewer of those policies than any competing platform).&lt;br /&gt;&lt;br /&gt;What Ballmer is promising to deliver -- multitasking and HTML5 support -- are basic capabilities that should have been in Windows Phone 7 at the outset. Apple's iOS, Google's Android OS, Hewlett-Packard's WebOS, and Research in Motion's BlackBerry OS 6 (introduced with the Torch last summer) all do. This is Microsoft just finally getting the basic in place, not an advancement that should get people excited.&lt;br /&gt;&lt;br /&gt;&lt;a href= "http://www.pcworld.com/article/219749/windows_phone_reloaded_can_we_trust_ballmers_promises.html"&gt;View Full Article&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NHibernate Resources and Video Series&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are interested in an ORM and would rather get a colonoscopy then use Entity Framework 4, below is a set of resources for nhiberate. &lt;a href="http://summerofnhibernate.com/"&gt;Summer Of Nhibernate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;.MARK Is Human&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok I made a mistake in my muppet blog post which was corrected by Doug Henning. I apologize for the mix up as the blog should has stated when you run the program the "RUN TIME" not the compiler will catch the error. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Doug Wrote: "One correction: you stated that the VFP compiler will catch a missing property, such as your x.doesntexist example. However, it wasn't the compiler that caught the error, it was the runtime. You didn't get the error when you typed or saved the code, but when you ran it."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Active VFP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An anonymous commenter left a link to a VFP web project on codeplex. If you missed the link in the comments here it is again. &lt;a href="http://ActiveVFP.codeplex.com"&gt;Active VFP On Codeplex&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have a great weekend.&lt;br /&gt;.Mark!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-7684019563624803938?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/7684019563624803938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=7684019563624803938' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7684019563624803938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7684019563624803938'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2011/02/weekend-thoughts.html' title='Weekend Thoughts'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-8851731989583919915</id><published>2011-02-18T11:14:00.000-08:00</published><updated>2011-02-18T23:28:01.393-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Webforms'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>.SEX  - Get A Microsoft  MVC Programmer Laid Benefit Drive!</title><content type='html'>I found this useless post http://codebetter.com/karlseguin/2010/03/11/webforms-vs-mvc-again/ from a true MVC cheerleader. Unfortunately he is pretty much clueless like so many Microsoft MVC guys are but thinks he is holier then GOD himself. The Microsoft MVC community as a whole for the most part, while there are a few exceptions like Scott Hanselman, have this GOD complex attitude that drive me insane. &lt;br /&gt;&lt;br /&gt;What I truly do not understand about the Microsoft MVC crowd is that, MVC is not new, exciting or different. Microsoft copied this paradigm folks! Moreover some of these same MSFT MVC cheerleaders that beat the hell out of Ruby, now think that MVC is just "it". When truth be told, if they understood the web forms model, classes and when/how to use web services they would understand there isn't anything wrong with the WEB Forms model. Webforms is in fact an innovation over open source offerings, the problem is Microsoft failed to complete web forms and get all the bugs out of it, but what else is new.&lt;br /&gt;&lt;br /&gt;With Web forms you can write the web forms pages so you can get reusability, clean urls and routing if you want. You can also use CSS, Javascript and Jquery as needed. The only thing lacking is some test driven development which IMHO is not much to write home about for the majority of the web projects. With the controller code some developers are writing along with messing around with EF as the "model" in MVC it is a complete sham what they are advocating. The BOTTOM LINE is MVC is WAY MORE WORK!&lt;br /&gt;&lt;br /&gt;If you been reading any of my blog posting you should have picked up on the fact I STRONGLY believe in solution focused software development with an emphasis on efficient tools, lean purpose driven frameworks, reusability and the customer NOT writing code! Which is my entire problem with Visual Studio, .BLOAT and MVC that is plumbing code centric development!&lt;br /&gt;&lt;br /&gt;Anyway I started thinking I really shouldn't mock this misguided code happy fellow or the Microsoft MVC community, instead we need to help them. Let's show them there is more to their pathetic life then getting an erection while watching a Scott "the dot" Gu webinar or jacking off to their 2 millions lines of code they wrote in MVC, which they wouldn't have had to write if they used webforms. &lt;br /&gt;&lt;br /&gt;Given there is no way to rationalize with the die hard MVC cheerleader, we need to take a different approach. So the approach I want to try is to get them laid! Yes, in other words, Let's Create The First Annual "Get The Microsoft MVC Development Community Laid Event!"&lt;br /&gt;&lt;br /&gt;Is this is a great freaking idea or what! &lt;br /&gt;&lt;br /&gt;We will raise money to fly the Microsoft MVC development community down to Vegas for a night of fun with something other then their Nerd Diner Cookbook, which by the way is the holy grail of Microsoft MVC. &lt;br /&gt;&lt;br /&gt;Please contact me if you would like to give to this great cause or want to nominate an MVC programmer for our help. Remember it is better to give today to get them laid then have a Microsoft MVC dude be your boss tomorrow!&lt;br /&gt;&lt;br /&gt;Until next time&lt;br /&gt;&lt;br /&gt;Happy Coding.&lt;br /&gt;.Mark!&lt;br /&gt;&lt;br /&gt;Here is a helpful tip. A lot of these MVC guys are HOUR billers! They love MVC because the more code they have to write the more hours they can bill. Folks seriously, if you are a client looking for a programmer to build a website and someone starts throwing the term Microsoft MVC around, be sure you get a quote from a webform and PHP programmer as well. In 99.999999999% of the cases "THERE IS NO END USER BENEFIT TO MICROSOFT MVC." Look Microsoft MVC is a sewer that you throw your time and money down instead of releasing a solution. Do not let these Microsoft MVC people bullshit you! Be sure to do your homework and compare quotes. If somehow the Microsoft MVC guy is the cheapest, tell them you want it fixed bid with a price and time guarantee. Moreover, I would really like to see the quote, heck I will review for you for FREE!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-8851731989583919915?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/8851731989583919915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=8851731989583919915' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8851731989583919915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8851731989583919915'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2011/02/sex-get-mvc-programmer-laid-benefit.html' title='.SEX  - Get A Microsoft  MVC Programmer Laid Benefit Drive!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-5983989378049962860</id><published>2010-12-23T23:58:00.001-08:00</published><updated>2010-12-24T22:06:15.519-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><title type='text'>The Cheerleaders Strike Again - The Good Part Source Code Doesn't Lie!</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x5nQAwrxvU4/TRRy02CDp3I/AAAAAAAAAJ8/A0IPfdO10E0/s1600/rs.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 264px; height: 191px;" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/TRRy02CDp3I/AAAAAAAAAJ8/A0IPfdO10E0/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554190492637570930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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?!&lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Of course I needed to set the record straight!&lt;br /&gt;&lt;br /&gt;Let's pull out some excepts out of his post and see how right or full of shit he is!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;After All Source Code Doesn't Lie&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Ok so let's get into his post ...&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;Here is a small sample code to prove this point. &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_x5nQAwrxvU4/TRRY3AK0UsI/AAAAAAAAAJk/EQox-sxfRf8/s1600/rs.png"&gt;&lt;br /&gt;&lt;img style="margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 212px;" src="http://3.bp.blogspot.com/_x5nQAwrxvU4/TRRY3AK0UsI/AAAAAAAAAJk/EQox-sxfRf8/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554161942416085698" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;Anyway let's proceed.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;His other point, I think what he is referring to is variable name typos and scoping...&lt;br /&gt;&lt;br /&gt;For example.&lt;br /&gt;&lt;br /&gt;private pcTypo&lt;br /&gt;pcTypo = ""&lt;br /&gt;pcType = "some error"&lt;br /&gt;&lt;br /&gt;pcType is a statement that will get through the compiler in VFP, no doubt about it and it will error in C#/Visual Studio. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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!. &lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Look at this simple code...&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_x5nQAwrxvU4/TRRe_ihB6uI/AAAAAAAAAJs/uaSdmndIPbU/s1600/rs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/TRRe_ihB6uI/AAAAAAAAAJs/uaSdmndIPbU/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554168686144776930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;iBroken is returning an error, fair enough, but the problem is gGuid is not where is the consistency?&lt;br /&gt;&lt;br /&gt;Here is a UI snippet in Visual Studio 2010.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRRiWYakFJI/AAAAAAAAAJ0/HG_lhr7ehjM/s1600/rs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 117px;" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRRiWYakFJI/AAAAAAAAAJ0/HG_lhr7ehjM/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554172377105175698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;br /&gt;Let me skip to the end of his post to wrap this up.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Step 1: Here is how you create a class in the class browser with a return value&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRTLgOpx2dI/AAAAAAAAAKE/ucLPBGkWF3M/s1600/rs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 175px;" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRTLgOpx2dI/AAAAAAAAAKE/ucLPBGkWF3M/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554287995004246482" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRTMMouLOeI/AAAAAAAAAKM/6g0WGvLXYpg/s1600/rs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 381px;" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/TRTMMouLOeI/AAAAAAAAAKM/6g0WGvLXYpg/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554288757916252642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_x5nQAwrxvU4/TRTNYfNjkZI/AAAAAAAAAKU/uQcZDkyGoGk/s1600/rs.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 156px;" src="http://3.bp.blogspot.com/_x5nQAwrxvU4/TRTNYfNjkZI/AAAAAAAAAKU/uQcZDkyGoGk/s400/rs.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5554290061033574802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am really glad I could help solve this mystery!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In closing:&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;LOCAL pcTemp&lt;br /&gt;pcTemp = ""&lt;br /&gt;pcTemp1 = ""&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;Anyway.....&lt;br /&gt;&lt;br /&gt;I hope everyone has a happy holiday...&lt;br /&gt;&lt;br /&gt;Until Next Time...&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-5983989378049962860?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/5983989378049962860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=5983989378049962860' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5983989378049962860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5983989378049962860'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/cheerleaders-strike-again.html' title='The Cheerleaders Strike Again - The Good Part Source Code Doesn&apos;t Lie!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x5nQAwrxvU4/TRRy02CDp3I/AAAAAAAAAJ8/A0IPfdO10E0/s72-c/rs.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1397489105905243994</id><published>2010-12-19T10:36:00.000-08:00</published><updated>2010-12-20T20:39:33.393-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>First Impressions of Windows 7</title><content type='html'>I put the following quote on my blog when I first created it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"Microsoft's biggest and most dangerous contribution to the software industry may be the degree to which it has lowered user expectations."&lt;br /&gt;&lt;br /&gt;-- Esther Schindler, OS/2 Magazine&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I truly believe Windows 7 gives merit to the quote.&lt;br /&gt;&lt;div style="float:right;"&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3fxZcn0NWJ0?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3fxZcn0NWJ0?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;Let's dig into Windows 7.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;User Interface and Applications&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;When installing some applications, Windows 7 generated a compatibility warning which I ignored and they seem to run ok. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;If you use paint, it has been infected with the useless ribbon bar found in office. &lt;br /&gt;&lt;br /&gt;The control panel is still a mess, I prefer XP'S implementation.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Internet Access&lt;/span&gt;&lt;br /&gt;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 &lt;a href="http://www.google.com/chrome/intl/en/landing_chrome.html?hl=en"&gt;Link to download it.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Performance&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some closing thoughts&lt;/span&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Until next time......&lt;br /&gt;&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;By the way I received an email with a &lt;a href="http://whatupdave.com/post/1170718843/leaving-net"&gt;link&lt;/a&gt; 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: &lt;br /&gt;&lt;br /&gt;http://whatupdave.com/post/1170718843/leaving-net&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1397489105905243994?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1397489105905243994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1397489105905243994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1397489105905243994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1397489105905243994'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/first-impressions-of-windows-7.html' title='First Impressions of Windows 7'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-161562516974622016</id><published>2010-12-16T15:17:00.000-08:00</published><updated>2010-12-17T12:32:17.296-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Guillaume Roques'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>Guillaume Roques Response - What he really meant...</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQqekg4GnfI/AAAAAAAAAJU/nr6_F3mvKs8/s1600/bloat.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 99px;" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQqekg4GnfI/AAAAAAAAAJU/nr6_F3mvKs8/s400/bloat.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5551423840825286130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;A bit about Kinnect&lt;/span&gt;&lt;br /&gt;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)&lt;br /&gt;&lt;br /&gt;&lt;object width="640" height="390"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d1D4rCbUM10&amp;hl=en_US&amp;feature=player_embedded&amp;version=3"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/d1D4rCbUM10&amp;hl=en_US&amp;feature=player_embedded&amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Soma's Reply&lt;/span&gt;&lt;br /&gt;I seriously appreciate the fact, Soma posted a reply and my comments. Below is what he wrote.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;.... My comments were posted here in his blog ...&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Now What I want to do is break down Guillaume Roques's response.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are a bit confused, check out my prior post before proceeding.&lt;br /&gt;&lt;br /&gt;But first, lets pull out the questions in Tom comments.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;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? &lt;br /&gt;&lt;br /&gt;2) Why are you guys promoting MVC. What is the problem with regular way of doing ASP.NET sites? &lt;br /&gt;&lt;br /&gt;3) Do you have scientific or statistical proof that MVC is better than the original approach? &lt;br /&gt;&lt;br /&gt;4) How many .NET developers actually use MVC?&lt;br /&gt;&lt;br /&gt;5) Why did you guys discourage LINQ-To-SQL and started encouraging Entity Framework? &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Guillaume's reply to Tom - What he really meant.&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x5nQAwrxvU4/TQuhuXlp-rI/AAAAAAAAAJc/L3eRO7J2BXk/s1600/gr.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 352px;" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/TQuhuXlp-rI/AAAAAAAAAJc/L3eRO7J2BXk/s400/gr.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5551708783642278578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tom:&lt;br /&gt;&lt;br /&gt;When we think developers that are consuming Ajax it breaks into two segments:&lt;br /&gt;&lt;br /&gt;a) Developers that want to write some client side script in their pages.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;[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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;b) Developers that want their applications to automatically take advantage of Ajax functionality.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[There is nothing automatic about the the Ajax Toolkit, it is merely the lesser of the two evils.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Our investments into jQuery &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[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.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;[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?]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;[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.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;This isn’t about choosing one Ajax strategy over the other you can use one or the other or both together.  &lt;br /&gt;&lt;span style="font-style:italic;"&gt;[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?] &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;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 &lt;br /&gt;&lt;span style="font-style:italic;"&gt;[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? &lt;br /&gt;&lt;br /&gt;Let's proceed I think you get my point.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;by letting them leverage rich web controls that have lots of built in functionality &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[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.]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.]&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;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 &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[Given how bad EF is, they are not exactly setting a very high bar!]&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;[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? &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Guillaume&lt;br /&gt;&lt;br /&gt;Director of Product Management - Microsoft&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Now let's return to the 5 questions Tom asked and see how many were answered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;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? &lt;br /&gt;&lt;br /&gt;Guillaume didn't even know Microsoft wrote the Ajax toolkit.&lt;br /&gt;&lt;br /&gt;2) Why are you guys promoting MVC. What is the problem with regular way of doing ASP.NET sites? &lt;br /&gt;&lt;br /&gt;Guillaume tried to spin an answer. It short we can't beat them so let's join them!&lt;br /&gt;&lt;br /&gt;3) Do you have scientific or statistical proof that MVC is better than the original approach? &lt;br /&gt;&lt;br /&gt;Guillaume ignored this one.&lt;br /&gt;&lt;br /&gt;4) How many .NET developers actually use MVC?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;5) Why did you guys discourage LINQ-To-SQL and started encouraging Entity Framework? &lt;br /&gt;&lt;br /&gt;I think Guillaume will get back to you Tom once Microsoft figures out how to use EF. IMHO To lock developers into SQL Server.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Until Next Time. &lt;br /&gt;&lt;br /&gt;.Mark!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-161562516974622016?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/161562516974622016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=161562516974622016' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/161562516974622016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/161562516974622016'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/guillaume-roques-response-what-he.html' title='Guillaume Roques Response - What he really meant...'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x5nQAwrxvU4/TQqekg4GnfI/AAAAAAAAAJU/nr6_F3mvKs8/s72-c/bloat.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-704048644147272365</id><published>2010-12-15T19:29:00.001-08:00</published><updated>2010-12-16T08:15:50.492-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Soma's Blog Comments Regarding VS Momentum</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_x5nQAwrxvU4/TQmRHxtbo-I/AAAAAAAAAJM/XHqF9v6vO88/s1600/soma.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 300px;" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/TQmRHxtbo-I/AAAAAAAAAJM/XHqF9v6vO88/s400/soma.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5551127578499851234" /&gt;&lt;/a&gt;&lt;br /&gt;My good friend Soma recently blogged about &lt;a href="http://blogs.msdn.com/b/somasegar/archive/2010/12/07/visual-studio-2010-momentum.aspx"&gt;"the Momentum of Visual Studio"&lt;/a&gt;. While this is mainly marketing BS, there are several comments on his blog that are noteworthy. &lt;br /&gt;&lt;br /&gt;By the way I am not mocking Sivaramakichenane Somasegar with the avatar, that is the same one he uses on his &lt;a href="http://www.facebook.com/profile.php?id=573869953"&gt;facebook page&lt;/a&gt; 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 &lt;a href="http://www.facebook.com/profile.php?id=100001696409249"&gt; facebook link. &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Someone named "Tom" left the following comment on Mr. Sivaramakichenane Somasegar's blog:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Lot to think about...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Guillaume Roques, Director of Product Management - Microsoft. Replied with the following comment.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;Tom:&lt;br /&gt;&lt;br /&gt;When we think developers that are consuming Ajax it breaks into two segments:&lt;br /&gt;&lt;br /&gt;a) Developers that want to write some client side script in their pages.&lt;br /&gt;&lt;br /&gt;b) Developers that want their applications to automatically take advantage of Ajax functionality.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Guillaume&lt;br /&gt;&lt;br /&gt;Director of Product Management - Microsoft&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;@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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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"?&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;Basic business 101: it is much cheaper to retain a client then it is to attract a new one. &lt;br /&gt;&lt;br /&gt;Regards,&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;dotbloat.blogspot.com&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;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, &lt;a href="http://dotbloat.blogspot.com/2009/02/end-of-mark-on-somas-blog-dont-count-on.html"&gt;but like last time&lt;/a&gt;,  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. &lt;br /&gt;&lt;br /&gt;Happy Coding!&lt;br /&gt;&lt;br /&gt;Until Next Time....&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-704048644147272365?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/704048644147272365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=704048644147272365' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/704048644147272365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/704048644147272365'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/comments-somas-blog-regarding-vs.html' title='Soma&apos;s Blog Comments Regarding VS Momentum'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x5nQAwrxvU4/TQmRHxtbo-I/AAAAAAAAAJM/XHqF9v6vO88/s72-c/soma.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-3107433958995677325</id><published>2010-12-14T11:58:00.001-08:00</published><updated>2010-12-14T17:36:45.229-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft VS The Virus ....</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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? &lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;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? &lt;br /&gt;&lt;br /&gt;Some things to think about ......&lt;br /&gt;&lt;br /&gt;Till next time&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-3107433958995677325?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/3107433958995677325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=3107433958995677325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/3107433958995677325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/3107433958995677325'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/day-in-life-of-xp-user.html' title='Microsoft VS The Virus ....'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1004200687333015885</id><published>2010-12-13T08:08:00.000-08:00</published><updated>2010-12-13T22:38:01.699-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='N-TIER Design'/><title type='text'>Separating from Concerns - Stop Using Visual Studio Is One Option</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQad0ykhkqI/AAAAAAAAAI0/0zv0umESAoE/s1600/india1.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 250px; height: 400px;" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQad0ykhkqI/AAAAAAAAAI0/0zv0umESAoE/s400/india1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5550297121034441378" /&gt;&lt;/a&gt;&lt;br /&gt;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 &lt;span style="font-weight:bold;"&gt;easily&lt;/span&gt; pulling this off in Visual FoxPro for years through N-TIER and so has rails through MVC.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt; &lt;br /&gt;I will get off my soapbox and further explore Visual Studio's MVC separation of concerns.&lt;br /&gt;&lt;br /&gt;N-TIER patterns are one way developers could "truly" separate concerns, here is a quick refresher on how this works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The UI Layer&lt;/span&gt; - Handles user input and sends and retrieves data to the business layer.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The Business Rules Layer&lt;/span&gt; - Validates information, performs processing and connects to the data access layer to send and retrieve information.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The Data Access Layer&lt;/span&gt; - 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...&lt;br /&gt;&lt;span style="font-style:italic;"&gt;The Database&lt;/span&gt; - This is merely My Sql, SQL Server, Oracle, Access, FoxPro etc...&lt;br /&gt;&lt;br /&gt;N-TIER is linear: UI hits the middle tier and the middle tier hits the data tier. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQZo9yVhLCI/AAAAAAAAAIc/5CH-lBnSvJY/s1600/india.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 400px; height: 241px;" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/TQZo9yVhLCI/AAAAAAAAAIc/5CH-lBnSvJY/s400/india.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5550239001474051106" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;If you want a more in depth comparison here is a link &lt;a href="http://dotbloat.blogspot.com/2009/03/source-code-doesnt-lie-4-ui-framework.html"&gt;regarding the UI layer and class browser with code samples.&lt;/a&gt; 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.&lt;br /&gt; &lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;&lt;div style="float:left; padding-right:10px;"&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/91C7ax0UAAc?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/91C7ax0UAAc?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;I found a brief video that helps explain this point a bit more, enjoy. :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;There are several reasons why I believe this happens:&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Anyway lets look at some code shall we, that may help... &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_x5nQAwrxvU4/TQZ6yImX27I/AAAAAAAAAIs/AEMXFCJl-Ao/s1600/mvcsample.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 257px;" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/TQZ6yImX27I/AAAAAAAAAIs/AEMXFCJl-Ao/s400/mvcsample.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5550258592501193650" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This was pulled right off the blog of a Visual Studio cheerleader to validate a login in MVC. &lt;br /&gt;&lt;br /&gt;Here is a very real world scenario. &lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;br /&gt;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! &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;I think you can see where this is going, we have validation crap in the controller, the html and a web-service.  &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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? &lt;br /&gt;&lt;br /&gt;Some closing thoughts. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;That is enough for today. &lt;br /&gt;&lt;br /&gt;Happy Coding!&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1004200687333015885?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1004200687333015885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1004200687333015885' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1004200687333015885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1004200687333015885'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/separating-from-concerns-stop-using.html' title='Separating from Concerns - Stop Using Visual Studio Is One Option'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x5nQAwrxvU4/TQad0ykhkqI/AAAAAAAAAI0/0zv0umESAoE/s72-c/india1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-2016824014812291699</id><published>2010-12-09T22:46:00.000-08:00</published><updated>2010-12-12T19:42:58.804-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Entity Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>The Death Of Foxpro  and the Birth Of the Entity Framework - another CTP anyway</title><content type='html'>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. &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;After all &lt;strong&gt;“Source Code Doesn’t Lie”… &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;The Entity Framework CTP 5&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1 Model Class and DB Context classes. &lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Actually we have to build up the tables first, just a minor detail...&lt;br /&gt;&lt;br /&gt;So let’s see what these model classes look like...&lt;br /&gt;&lt;br /&gt;Public class Product&lt;br /&gt;{&lt;br /&gt; Public  int productid { get; set }&lt;br /&gt;        Public int categoryid { get; set }&lt;br /&gt; Public string productname { get; set }&lt;br /&gt;        // WTF is up with the ? talk about an after  thought…&lt;br /&gt; Public Decimal? UnitPrice { get; set } &lt;br /&gt;        Public Bool  Discontinued { get; set }&lt;br /&gt;        public virtual category category { get; set }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Now we have to jerk with the category table class&lt;br /&gt;&lt;br /&gt;Public class category&lt;br /&gt;{&lt;br /&gt;        Public int categoryid { get; set }&lt;br /&gt; Public string categoryname { get; set }&lt;br /&gt; Public string description { get; set }&lt;br /&gt; public virtual ICollection&lt;Product&gt; Products  { get; set }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Now we need to create a data context – No I am not shitting you &lt;br /&gt;&lt;br /&gt;Public class northwind : dbcontext&lt;br /&gt;{&lt;br /&gt;        public dbset Product {get;set;}&lt;br /&gt;        public dbset Category {get;set;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Side note: You need less then and greater than signs around the table names. The blogger editor stripped them out.&lt;br /&gt;&lt;br /&gt;Thanks goodness THE GLUE doesn’t use any real world examples I would spend hours hand coding the classes. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2 Configure the connection string &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;connectionStrings&gt;    &lt;br /&gt;         &lt;add name="Northwind" &lt;br /&gt;         connectionString="data source=.\SQLEXPRESS;Integrated  &lt;br /&gt;         Security=SSPI;AttachDBFilename=|DataDirectory|\northwind.mdf;&lt;br /&gt;         User Instance=true" &lt;br /&gt;         providerName="System.Data.SqlClient" /&gt;&lt;br /&gt;&lt;/connectionStrings&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3 Pull a collection from EF&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;DOT GLUE used linq in this example&lt;br /&gt;&lt;em&gt;&lt;br /&gt;Personally I hate the linq syntax it is sort of like reinventing the wheel and building a CUBE instead of a circle.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;NorthWind Northwindw() = new NorthWind();&lt;br /&gt;&lt;br /&gt;var p = from p in northwind.products&lt;br /&gt;                where p.category.categoryname = “Beverages”&lt;br /&gt;                 select p;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4 an EF update&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;NorthWind Northwind() = new NorthWind();&lt;br /&gt;Product.Product = northwind.products.find(1);&lt;br /&gt;Product.UnitPrice = 2.33m;&lt;br /&gt;Product.Discontinued = false;&lt;br /&gt;&lt;br /&gt;// this is where the VS Cheerleaders have an orgasm and praise gu!&lt;br /&gt;Northwind.SaveChanges();&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;NOW Let’s run through this same example in VFP&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Yes no class code or data context required. &lt;br /&gt;&lt;br /&gt;For humor sake if we wanted a record object it would look something like this.&lt;br /&gt;&lt;br /&gt;Select product&lt;br /&gt;Scatter name oProduct blank&lt;br /&gt;Select category &lt;br /&gt;Scatter name oCategory blank&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Next The Glue built a collection using linq… a cursor will work just fine in vfp.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Select * from products &lt;br /&gt;   inner join category on products.categoryid  = category.categoryid &lt;br /&gt;   where categoryname = “Beverages” into cursor p&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Perform an Update&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Select product&lt;br /&gt;= seek(1)  // This finds a record&lt;br /&gt;&lt;br /&gt;&lt;em&gt;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.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Scatter name oProduct&lt;br /&gt;oProduct.UnitPrice = 2.33m;&lt;br /&gt;oProduct.Discontinued = false;&lt;br /&gt;&lt;br /&gt;// 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.&lt;br /&gt;Gather name oProduct&lt;br /&gt;&lt;br /&gt;Is it just me or are you having a WTF moment as well. &lt;br /&gt;&lt;br /&gt;Folks Microsoft killed Visual FoxPro and now we have the entity framework don’t you love progress Microsoft Visual Studio style!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;EF Validation&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ironically in the next paragraph THE GLUE discusses &lt;em&gt;Keeping things DRY &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="float:right;"&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8jeH6Bav11o?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/8jeH6Bav11o?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The “DRY Principle” stands for “Do Not Repeat Yourself".&lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;The GLUE wraps this post up by getting us excited about other improvements&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) EF Code First CTP5 exposes a new set of change tracking information that enables you to access Original, Current &amp; Stored values, and State (e.g. Added, Unchanged, Modified, Deleted).  This support is useful in a variety of scenarios.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Well this sounds like VFP GetNextModified and GetFldState to me nothing new there.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;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?&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;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]&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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!&lt;br /&gt;&lt;br /&gt;When all is said and done aren’t you glad source code doesn’t lie!&lt;br /&gt;&lt;br /&gt;Until Next Time&lt;br /&gt;&lt;br /&gt;Happy Coding!&lt;br /&gt;&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;By the way in case you are interested here is the &lt;a href="http://msmvps.com/blogs/peterritchie/archive/2008/06/25/entity-framework-petition-of-vote-of-non-confidence.aspx"&gt;link&lt;/a&gt; to the no confidence petition for the entity framework started by several MVPS. &lt;br /&gt;&lt;br /&gt;http://msmvps.com/blogs/peterritchie/archive/2008/06/25/entity-framework-petition-of-vote-of-non-confidence.aspx&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-2016824014812291699?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/2016824014812291699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=2016824014812291699' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/2016824014812291699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/2016824014812291699'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/death-of-foxpro-and-birth-of-entity.html' title='The Death Of Foxpro  and the Birth Of the Entity Framework - another CTP anyway'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-4394569618065529977</id><published>2010-12-09T11:49:00.000-08:00</published><updated>2010-12-09T14:49:20.767-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Donn Felker'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Donn Felker Android and MVC</title><content type='html'>If you read my prior post I picked up an android phone over the weekend. This morning I checked out some android videos &lt;a href="http://www.google.com/events/io/2010/sessions.html"&gt;here is the Google Android Sessions video link&lt;/a&gt; if you are interested. There is some cool stuff being discussed if you are into mobile droid development or at least curious about it.&lt;br /&gt;&lt;br /&gt;Then I went browsing around the interweb for some books on the subject and I came across a book and blog by &lt;a href="http://blog.donnfelker.com/"&gt;Donn Fellker&lt;/a&gt;. 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 :) ) &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x5nQAwrxvU4/TQE2Xp5cqhI/AAAAAAAAAIE/UEuxcBXyQSI/s1600/donn.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 400px;" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/TQE2Xp5cqhI/AAAAAAAAAIE/UEuxcBXyQSI/s400/donn.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5548775995908860434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the link to the &lt;a href="http://www.code-magazine.com/Article.aspx?quickid=1003051"&gt; full article.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Happy Coding!&lt;br /&gt;&lt;br /&gt;Until Next Time&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-4394569618065529977?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/4394569618065529977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=4394569618065529977' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/4394569618065529977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/4394569618065529977'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/donn-felker-android-and-mvc.html' title='Donn Felker Android and MVC'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x5nQAwrxvU4/TQE2Xp5cqhI/AAAAAAAAAIE/UEuxcBXyQSI/s72-c/donn.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-3967070361148150106</id><published>2010-12-06T19:04:00.000-08:00</published><updated>2010-12-09T15:00:40.433-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Micrsoft the Next IBM</title><content type='html'>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. &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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".&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Anyway . . . . &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;Office is still a good tool but the office team uses their own libraries and avoids .NET like the plaque.&lt;br /&gt;&lt;br /&gt;SQL Server: I do miss using it on a daily basis, that is the one development tool Microsoft is yet to screw up. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;Until Next Time.&lt;br /&gt;&lt;br /&gt;Happy Coding and Think Open Source!&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-3967070361148150106?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/3967070361148150106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=3967070361148150106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/3967070361148150106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/3967070361148150106'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/12/micrsoft-next-ibm.html' title='Micrsoft the Next IBM'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-366726225175975402</id><published>2010-11-17T14:43:00.000-08:00</published><updated>2010-11-17T15:09:06.608-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>DOT GLUE Firestater</title><content type='html'>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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;Here is another excerpt I pulled off a blog today.&lt;br /&gt;&lt;br /&gt;Microsoft to embrace and extend HTML 5?&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;“Right now there’s a faction war inside Microsoft over HTML5 vs Silverlight. oh and WPF is dead.. i mean..it kind of was..but now.. funeral.”&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;“HTML5 is the replacement for WPF.. IE team want to fork the HTML5 spec by bolting on custom windows APi’s via JS/HTML5”&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Your friend&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-366726225175975402?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/366726225175975402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=366726225175975402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/366726225175975402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/366726225175975402'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/11/dot-glue-firestater.html' title='DOT GLUE Firestater'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-914366818061398237</id><published>2010-11-14T22:04:00.001-08:00</published><updated>2010-11-15T00:03:23.540-08:00</updated><title type='text'>What is on the horizon at Microsoft</title><content type='html'>I was curious to see how Microsoft was using their Great Visual Studio technology and stumbled across a few leaked videos. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Check it out and see the future, today!&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apple has the IPOD and Microsoft has the Big Ass Table!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/CZrr7AZ9nCY?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/CZrr7AZ9nCY?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Windows Mobile Phone - Is my friend Soma in this video?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/WazA77xcf0A?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/WazA77xcf0A?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Kinnect for XBOX 360&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/d1D4rCbUM10?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/d1D4rCbUM10?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Of course Bing is the Microsoft Showcase so let's not forgot about it. &lt;br /&gt;Wait I think most webusers already have.&lt;br /&gt;What makes this so funny is this is not a parody.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/h9DBynJUCS4?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/h9DBynJUCS4?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Here are a few more worth watching!&lt;br /&gt;&lt;br /&gt;One of my favorites&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/85rD1cOl2-s?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/85rD1cOl2-s?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Happy Words Windows 7&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/23z55TZSNgc?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/23z55TZSNgc?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Vista - Where are we now?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/N37nAqMpfeM?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/N37nAqMpfeM?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/t3h6kOLYGtI?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/t3h6kOLYGtI?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And of course the Windows 7 vs Mac Ads &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/YD_XagHUNDA?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/YD_XagHUNDA?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/e4D5B8H0U8w?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/e4D5B8H0U8w?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BpOvzGiheOM?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/BpOvzGiheOM?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hope you enjoyed them!&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-914366818061398237?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/914366818061398237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=914366818061398237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/914366818061398237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/914366818061398237'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/11/what-is-on-horizon-at-microsoft.html' title='What is on the horizon at Microsoft'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1860822196122250548</id><published>2010-11-11T20:17:00.000-08:00</published><updated>2010-12-09T15:20:58.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>MVC AND RAZOR BIZSPARK AND SCOTT GU AKA DOT GLUE</title><content type='html'>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 &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;PHP&lt;/span&gt;, 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.&lt;br /&gt;&lt;div style="PADDING-left: 10px; FLOAT: right"&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/z99EHyG2jQA?fs=1&amp;amp;hl=en_US"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/z99EHyG2jQA?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;I just read the blog postings on the &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;Internet&lt;/span&gt; about silver light, now Microsoft is back pedaling with &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;silver light&lt;/span&gt; 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 &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;netflix&lt;/span&gt; uses &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;silverlight&lt;/span&gt; I wonder how much Bill Gates paid them.&lt;br /&gt;&lt;br /&gt;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 &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;Soma&lt;/span&gt; wrote on his blog. From what I been hearing from a reliable source the &lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;Linq&lt;/span&gt; to &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;Sql&lt;/span&gt; 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 &lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;LINQ&lt;/span&gt; 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?&lt;br /&gt;&lt;br /&gt;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 &lt;span id="SPELLING_ERROR_10" class="blsp-spelling-corrected"&gt;occasional&lt;/span&gt; client for which I have to painfully open Visual Studio. This one last week I had was blog worthy.&lt;br /&gt;&lt;br /&gt;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 &lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; which is not &lt;span id="SPELLING_ERROR_15" class="blsp-spelling-corrected"&gt;compatible&lt;/span&gt; with the production version, &lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;WTF&lt;/span&gt;! Folks it took 2 hours to configure a computer just to maintain this code. Where is the productivity in that mess.&lt;br /&gt;&lt;br /&gt;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:&lt;br /&gt;&lt;br /&gt;1) .BLOAT Wrapper classes&lt;br /&gt;2) Jquery&lt;br /&gt;3) Javascript&lt;br /&gt;4) Blend&lt;br /&gt;5) C#&lt;br /&gt;6) CSS&lt;br /&gt;7) HTML&lt;br /&gt;8) Visual Studio&lt;br /&gt;9) MVC&lt;br /&gt;10) Webservices&lt;br /&gt;11) SQL Server Stored Procedures&lt;br /&gt;12) Entity Framework&lt;br /&gt;13) LINQ&lt;br /&gt;14) Dataset - to fill in the holes, like reporting, where LINQ and EF don't work&lt;br /&gt;16) AJAX&lt;br /&gt;17) ASPX - for somes pages that the MVC framework was to time consuming to use.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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 &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-corrected"&gt;definitely would&lt;/span&gt; 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 &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;microsoft&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;Look point blank, Microsoft's &lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; has zero RAD tools, no controls and for the most part you are &lt;span style="color:#ffff00;"&gt;&lt;span style="color:#000000;"&gt;on technology overload&lt;/span&gt;.&lt;/span&gt; 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 &lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; model use Ruby it seems to work well and the best part is it is not based on Microsoft's .CRAP wrapper classes.&lt;br /&gt;&lt;br /&gt;What I find amusing is how Microsoft's is scrambling now to release the new &lt;span id="SPELLING_ERROR_23" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; Razor view engine in hopes it fixes all the problems with their current view engine for &lt;span id="SPELLING_ERROR_24" class="blsp-spelling-error"&gt;MVC&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Then I read &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/11/09/announcing-the-asp-net-mvc-3-release-candidate.aspx"&gt;Scott GU'S blog&lt;/a&gt; and there are all these want-a-bees suck ups praising DOT GLUE for &lt;span id="SPELLING_ERROR_26" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; 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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?&lt;br /&gt;&lt;br /&gt;The funniest post was some dude wrote: (and I am paraphrasing here) I opened up the &lt;span id="SPELLING_ERROR_27" class="blsp-spelling-error"&gt;MVC&lt;/span&gt; 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!&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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?).&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Enough for now take care everyone.&lt;br /&gt;&lt;br /&gt;Your Friend&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;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.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1860822196122250548?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1860822196122250548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1860822196122250548' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1860822196122250548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1860822196122250548'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2010/11/mvc-and-razor.html' title='MVC AND RAZOR BIZSPARK AND SCOTT GU AKA DOT GLUE'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-8594909884528762257</id><published>2009-05-30T20:23:00.000-07:00</published><updated>2009-05-31T02:06:59.741-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Bing - 3 Strikes Microsoft is Out!</title><content type='html'>First there was MSN search, it failed, then Live search was born, it also failed, and now raising from the smoke of two of the most expensive search engine screwups of all time comes the great BING (but it’s not Google) search engine. Yes friends, Microsoft is making yet another attempt to enter the search engine arena. Historically the Microsoft Search Engine and their Visual Studio Data Access Technology have a long standing common thread, they suck!&lt;br /&gt;&lt;br /&gt;Looking into the future without having to even use the product, only watching the demo, Bing is going to be next in line to crawl into the bowels of cybernothingness.&lt;br /&gt;&lt;br /&gt;You might be thinking to yourself Mark the product hasn’t even been released yet how can you make such a harsh pessimistic assessment that Bing is the sound the search engine is going to make as it hits the side wall of the garbage can. There are many reasons that I will once again be correct as usual.&lt;br /&gt;&lt;br /&gt;First off, unlike in the development tool arena where Microsoft could purchase as many development tools as possible that were better then visual studio and then issue their end of life so developers were forced to use that piece of shit - ass licking - bloated - sucks worse then a vacation in Iraq - smellier then a India defaction pool in the middle of summer - development environment known as the .NET framework and Visual Studio. Thank heaven Microsoft is not able to buy it’s competitors, Yahoo or Google, so MSFT must innovate which it is completely unable to do. If you doubt this is true look at Vista, this was Microsoft's attempt to NOT copy the MAC OS in full and we all know what a great success that OS was.&lt;br /&gt;&lt;br /&gt;Second, Microsoft isn’t capable of doing anything that is not bloated. The beauty of Google, besides the solid result set, is Google is simple to use !&lt;br /&gt;&lt;br /&gt;Third, there is a large market segment that absolutely hates Microsoft besides the fact Microsoft is viewed as UNCOOL. These people will never use anything Microsoft related. The reason for their hate is more then justified let’s face it Microsoft's products suck and make everyone’s job harder, worse yet Microsoft could care less and continues on the path of never ending learning curve to make us less productive !&lt;br /&gt;&lt;br /&gt;As a footnote below are some interesting facts about India from indiablogs.searchindia.com. Remember India is where Microsoft has 2 huge campuses and according to minimicrosoft India is where the .SUCK framework is developed. This Microsoft job exportation was due in large part to my good friend Soma!&lt;br /&gt;&lt;br /&gt;* Indians leave about 100,000 tons of shit in the open every day, in the fields, on the river banks and in the middle of the biggest cities.&lt;br /&gt;&lt;br /&gt;* About 665 million Indians shit in public or engage in open defecation (to use a euphemism), that’s half the world’s 1.2 billion who let go in public. [WOW while it is close but it looks as if more people in India dump the truck in public then there are classes in .NET4.]&lt;br /&gt;&lt;br /&gt;* Each gram of feces contains millions of harmful bacteria and viruses and a thousand parasite cysts. [Ironically isn't this almost the same number of viruses that infected PC'S through Microsoft's pathetic Internet Explorer security model and bugs last year?]&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/SiH-c6y664I/AAAAAAAAAH0/YMFnGXxL3tc/s1600-h/india.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5341830405810744194" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 230px; CURSOR: hand; HEIGHT: 282px" alt="" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/SiH-c6y664I/AAAAAAAAAH0/YMFnGXxL3tc/s400/india.jpg" border="0" /&gt;&lt;/a&gt; * Over 37% of the total human excreta generated in urban India is unsafely disposed, according to the &lt;a href="http://www.indiawaterportal.org/blog/wp-content/uploads/2008/12/nusb.pdf"&gt;National Urban Sanitation Policy&lt;/a&gt; document prepared by India’s Ministry of Urban Development&lt;br /&gt;&lt;br /&gt;* According to the &lt;a href="http://ddws.gov.in/popups/XIPlan_BHARAT%20NIRMAN.pdf"&gt;11th Five-Year plan document&lt;/a&gt;, of the 200 million dwelling units across India, only 40 million dwelling units have a toilet &lt;a id="more-1576"&gt;&lt;/a&gt;inside the house. Only 61% households in urban areas and 17% households in rural areas have access to improved sanitation. [I wonder how many of the people listed in the stats above work for Microsoft and even more interesting to know the number that are programmers working on MVC, WPF, Silverlight, Visual Studio and .BLOAT. I could be mistaken but the person pictured looks a lot like the .NET 4 lead programmer enjoying his break after coding for 50 cents an hour !]&lt;br /&gt;&lt;br /&gt;* 12.04 million urban households do not have access to latrines and defecate in the open. [I think this is just about the same number of people that get sick after realizing they spent their hard earned money on Vista and Visual Studio]&lt;br /&gt;&lt;br /&gt;* The &lt;a href="http://ddws.gov.in/popups/XIPlan_BHARAT%20NIRMAN.pdf" modo="false"&gt;Government of India acknowledges&lt;/a&gt; that lack of covered toilets nearby imposes a severe hardship on women and girls and yet does little. [I wish Microsoft would acknowledge the severe hardship caused by Visual Studio and .NET for developers. Like the Government of India, Microsoft does little to improve the situation.]&lt;br /&gt;&lt;br /&gt;* The ultimate indignity of having to do it in the open. [Can this be equated to smart people that work at Microsoft that really need their job and have to advocate and spin .NET and Visual Studio as being productive?]&lt;br /&gt;&lt;br /&gt;Aren't we glad India is the technology capital of the world ! Thanks SOMA without your efforts perhaps none of this would be possible and we might actually have a solid development tools like VS 6, VB and VFP better yet life without .BLOAT !&lt;br /&gt;&lt;br /&gt;Until next time avoid bing and VS 2010 beta.&lt;br /&gt;&lt;br /&gt;By the way I have joined facebook please look me up I would like to hear from you.&lt;br /&gt;&lt;br /&gt;Your Friend,&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-8594909884528762257?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/8594909884528762257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=8594909884528762257' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8594909884528762257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8594909884528762257'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/05/bing-3-strikes-microsoft-is-out.html' title='Bing - 3 Strikes Microsoft is Out!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x5nQAwrxvU4/SiH-c6y664I/AAAAAAAAAH0/YMFnGXxL3tc/s72-c/india.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-5028520730511334177</id><published>2009-03-11T18:57:00.001-07:00</published><updated>2009-03-12T19:50:03.689-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='visual studio 2008'/><title type='text'>Who is really to blame for Visual Studio?</title><content type='html'>Scott's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Gu&lt;/span&gt; posted a chapter from the new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;MVC&lt;/span&gt; book on his blog, which I finished reading a few minutes ago. I was amazed by the backward progression of "modern" development tools and programming techniques. Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Gu&lt;/span&gt;, Microsoft and the cheerleaders act as if this debacle known as Visual Studio was created outside the sweep of history, or that they cannot possibly glean wisdom from yesterday's technologies. Is Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Gu&lt;/span&gt; and Microsoft really so bright, so brilliant, so ingenious, that they need not consult with the wisdom of prior development tools used in the 6.0 days? Yes, the old fashioned musty things - can be our salvation - if only Microsoft would install them and realize how productive these "legacy" technologies are in comparison to .NET. Instead of learning from experience thereby building on the "legacy" knowledge base in order to guide future development tools, Microsoft and Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Gu&lt;/span&gt; in a clear lapse of thought insist on reinventing the wheel. Their exercise in stupidity comes at great cost to developer productivity.&lt;br /&gt;&lt;br /&gt;If we could provide only Lotus 1-2-3, as the next revision to our complex business systems that our client possess - then merely instruct them how to manually enter data into cells and create formulas while &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;cheerleading&lt;/span&gt; the control they have over their data and complex algorithms they "get" to happily create spinning the extra work as a benefit -while we know know full well in their ignorance we would receive payment along with praise in the process for introducing them to this "great new user definable flexible technology" would we? If we answer yes, then we can't necessarily blame Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Gu&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Soma&lt;/span&gt; and Microsoft for the current state of Visual Studio and .bloat as we became the ignorant end users.&lt;br /&gt;&lt;br /&gt;Perhaps we should blame the people who offer praise for Microsoft, pathetically thanking them for providing "new" technology and development tools that mandates hand-coding a user interface - employing coding techniques predating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;FoxPro&lt;/span&gt; 2.0 - which on a productivity level equate closer to Mainframe COBOL. The cheerleaders as much as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Soma&lt;/span&gt;, Scott &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Gu&lt;/span&gt; and Microsoft bear the responsibility for our current state of affairs. Have we grown so accustom to horrific software by Microsoft, that lack of Visual Designers, debuggers and nonsensical glue code we now find praise-worthy instead of appalling?&lt;br /&gt;&lt;br /&gt;If we don't expend the energy and time to speak up, we can only blame ourselves, when Visual Studio 2012 forces us to use technologies that resemble assembler.&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-5028520730511334177?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/5028520730511334177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=5028520730511334177' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5028520730511334177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5028520730511334177'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/03/whose-really-to-blame-for-visual-studio.html' title='Who is really to blame for Visual Studio?'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-8044955866191186923</id><published>2009-03-05T18:29:00.000-08:00</published><updated>2009-03-06T10:25:59.227-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><title type='text'>Source Code Doesn't Lie #4: UI Framework Layer</title><content type='html'>The source code challenge creating a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;UI&lt;/span&gt; framework layer&lt;br /&gt;&lt;br /&gt;The Winner - Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;FoxPro&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Score card through 4 coding challenges:&lt;br /&gt;The Legacy Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;FoxPro&lt;/span&gt; 4&lt;br /&gt;The Great Visual Studio 0&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Let’s start with a brief overview of what N-TIER design entails.&lt;br /&gt;&lt;br /&gt;An n-tier application is one where the application is split into logic sections. These sections are the user interface tier, the middle tier where the application business rule along with data access programming resides and the data tier (the database). While all the tiers may reside on one or two computers or servers this model allows the application to be “scaled” to improve performance. In other words the user interface may reside on the client’s workstation or in a browser, the middle tier could utilize its own application server and the data tier would have its own server.&lt;br /&gt;&lt;br /&gt;There are numerous benefits to this programming model besides scalability, for example the same middle tier and database can be accessed by both a web based interface or a client application interface. This means all the middle tier code and the database is shared instead of writing the code twice. Moreover a framework can be implemented to further reduce programming by creating a baseline of generic programming (classes) which the application is based upon. By employing a framework in conjunction with N-TIER design patterns we are able to create an application that is scalable, easy to maintain and provides a consistent programming model for maintenance along with a consistent user interface.&lt;br /&gt;&lt;br /&gt;The most common mistake a programmer (and Microsoft for that matter) makes when trying to implement this design pattern is to place code that really belongs in the middle tier in the user interface tier or to access the database directly from the user interface layer.&lt;br /&gt;&lt;br /&gt;Now that we have a basic understanding of the N-TIER model let’s move to implementing the classes that would be required by the user interface layer for a Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;FoxPro&lt;/span&gt; application and a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;winform&lt;/span&gt; application. I must be in a good mood tonight as using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Winforms&lt;/span&gt; will paint Visual Studio in the best light. Microsoft royally screwed this model up in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;WPF&lt;/span&gt; and a comparison with Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FoxPro&lt;/span&gt; would not even be close in terms of code and ease of implementation. On a side note: Yes they failed with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Webforms&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;MVC&lt;/span&gt; as well .&lt;br /&gt;&lt;br /&gt;Are you ready to develop a framework &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;UI&lt;/span&gt; layer at light speed with Visual Studio 2008 and .BLOAT?&lt;br /&gt;&lt;br /&gt;The first step is subclass the native development controls into a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;UI&lt;/span&gt; framework class. To keep things simple we will subclass a form, label and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;textbox&lt;/span&gt; class. Let’s start with Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;FoxPro&lt;/span&gt;, this step requires zero coding we simply use the class browser. As you see in the screen shot we have a base &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;UI&lt;/span&gt; framework layer that is ready to use in our application. This took less then a minute to build.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5nQAwrxvU4/SbCLhchMzYI/AAAAAAAAAHs/rmlFEYMVr-Q/s1600-h/vfp_ui_base.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5309897367377202562" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 333px" alt="" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/SbCLhchMzYI/AAAAAAAAAHs/rmlFEYMVr-Q/s400/vfp_ui_base.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now let’s perform the same task in Visual Studio. First off you can’t subclass &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;UI&lt;/span&gt; controls in the class browser therefore we have to hand code each class. In order to save some code in Visual Studio - which I really freaking &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;shouldn't&lt;/span&gt; - I will exclude the code necessary to workaround bugs that are related to setting default &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;proprieties&lt;/span&gt; in the subclass that get jacked by the property sheet.&lt;br /&gt;&lt;br /&gt;Now here is the Visual Studio Code that was NOT required in the legacy Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;FoxPro&lt;/span&gt; base framework layer.&lt;br /&gt;&lt;br /&gt;//FOLKS: This is the Microsoft money section it forces your client to use the windows&lt;br /&gt;//operating system. Steve and Bill count the dollar signs each time they see a&lt;br /&gt;//USING system in your code.&lt;br /&gt;using System;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;using System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;ComponentModel&lt;/span&gt;;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;namespace&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;UILayer&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;//Since VS doesn't have a class browser that works&lt;br /&gt;//or an &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;ide&lt;/span&gt; with code windows we need regions to keep the code &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;manageable&lt;/span&gt;&lt;br /&gt;#region forms&lt;br /&gt;&lt;br /&gt;//Why in the hell do I have to add an attribute to my class that&lt;br /&gt;//tells the great Visual Studio what icon it needs to display in the toolbox for the class?&lt;br /&gt;//&lt;br /&gt;//The &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;ide&lt;/span&gt; freaking knows it is inheriting from a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;textbox&lt;/span&gt;. It should display a default&lt;br /&gt;//&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;textbox&lt;/span&gt; icon then allow us to override it as needed.&lt;br /&gt;//&lt;br /&gt;//In &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;VFP&lt;/span&gt; a property sheet could have been used and no coding would be necessary&lt;br /&gt;&lt;br /&gt;[ToolboxBitmap(typeof(System.Windows.Forms.Form))]&lt;br /&gt;&lt;br /&gt;public class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;SampleForm&lt;/span&gt; : Form&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;SampleForm&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;#&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;//Blah, Blah Blah the same crap not exciting but it is code we should not have to write!&lt;br /&gt;//All that should be required is us setting &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_31"&gt;proprieties&lt;/span&gt; and the business logic.&lt;br /&gt;// yes this is plumbing code!&lt;br /&gt;&lt;br /&gt;#region &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;textboxes&lt;/span&gt;&lt;br /&gt;[ToolboxBitmap(typeof(System.Windows.Forms.TextBox))]&lt;br /&gt;public class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;SampleTextBox&lt;/span&gt; : &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;TextBox&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;SampleTextBox&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;#&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;#region labels&lt;br /&gt;[ToolboxBitmap(typeof(System.Windows.Forms.Label))]&lt;br /&gt;public class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;SampleLabel&lt;/span&gt; : Label&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;SampleLabel&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;#&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;endregion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It is obvious &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;FoxPro&lt;/span&gt; requires less work as the more we keep adding to this model the worse things get for Visual Studio. Adding methods, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_41"&gt;proprieties&lt;/span&gt; and inheritance are all done in the class browser visually with the legacy FoxPro and using the Microsoft's Latest Technology Visual Studio 2008 with 70k class of bloat in .NET this it is all done in code.&lt;br /&gt;&lt;br /&gt;If this nonsense was not bad enough; let's say for example you decide to use the wizards in Visual Studio instead of using subclasses, guess what happens? (Don't think this wizard code is not used in the field I see it all the time in applications). Anyway back to my point guess what occurs, I will tell you, a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;WTF&lt;/span&gt; MOMENT occurs - that is what. The visual studio wizards embeds data access code into the user interface layer, not only do we lose the value of inheritance and have duplicate code everywhere, the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_43"&gt;foundation&lt;/span&gt; of N-TIER design is broken by code generated by Microsoft!&lt;br /&gt;&lt;br /&gt;Even the Visual Studio Cheerleaders will try to spin this extra work as a positive, below is an excerpt from code magazine…&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;&lt;em&gt;“...&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;Subclassing&lt;/span&gt; the base .NET Windows Forms controls is different from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_46"&gt;VFP&lt;/span&gt; because developers must write code to do so. You cannot subclass visually, but the process will provide good exposure to the language and the .NET Framework.” &lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;What the hell are they talking about, they can't think we are that stupid - Let's read it again -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;“...Subclassing the base .NET Windows Forms controls is different from VFP &lt;/strong&gt;[hell yeah it is it is alot more freaking work in Visual Studio]&lt;strong&gt; because developers must write code to do so &lt;/strong&gt;[which in any worthwhile tool we shouldn't have to]&lt;strong&gt;. You cannot subclass visually,&lt;/strong&gt; [no shit thanks for pointing out the obvious, they should have mentioned due to the fact the visual studio class browser sucks]&lt;strong&gt; but the process will provide good exposure to the language and the .NET Framework.” &lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes I read it correctly, they wrote &lt;em&gt;"this process will provide good exposure to the language and the .NET framework"&lt;/em&gt; - are they freaking joking me?!?!? Here is what I have to say to the code magazine Visual Studio cheerleaders &lt;strong&gt;“SCREW THAT”&lt;/strong&gt;. This is a major bug in Visual Studio call it exactly what the F&amp;amp;$K it is!&lt;br /&gt;&lt;br /&gt;I hate to do this I really do, but we have to dig deeper into this idea of "providing good exposure to the language and the .NET framework".&lt;br /&gt;&lt;br /&gt;First off I need to ask this, how many freaking times during the application development process do we need to WASTE time getting "good exposure to the language and the .NET framework". WTF - With all the code we have to write in Visual Studio do they think we are going to forget? There is less typing involved in a Mavis Beacon teaches typing dvd. This is a perfect example of what I have been saying all along folks, cheerleaders will do or say anything to hide the truth of Visual Studio.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_47"&gt;Secondarily&lt;/span&gt; please stop calling .NET a framework. .NET is NOT a framework. For the most part Microsoft took the Windows &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_48"&gt;API&lt;/span&gt; layer and wrapped it in classes - that is all the majority of .NET is. Moreover a portion of .NET is based on outdated legacy technology that has been around since early version of windows, yes before Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_49"&gt;FoxPro&lt;/span&gt;. There are basic principles of framework design: I will pick 2 general ones everyone can understand, a framework should eliminate code &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_50"&gt;redundancy&lt;/span&gt; and a framework should provide a consistent way of coding. How in the world do we have a consistency in .NET when there is class &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_51"&gt;redundancy&lt;/span&gt; everywhere, for example we have 6 bad ways of accessing data alone, that is not eliminating redundancy that is BLOAT! If .NET fails the first two general tests required to be considered a framework then it is not a framework!&lt;br /&gt;&lt;br /&gt;Getting back to their quote &lt;em&gt;"good exposure to the language and the .NET framework"&lt;/em&gt;, If we apply their logic for minute to a car, would anyone want to push a freaking car instead of drive one because the car maker failed to design the engine correctly? Your answer would be NO - but a cheerleader would say that is fine because it would provide good exposure to fresh air. Yes, this is as freaking unbelievable as it sounds, and that is the idea they are trying to sell us on.&lt;br /&gt;&lt;br /&gt;The bottom line is Visual Studio is so bad and unproductive it can not be defended using rational arguments so cheerleaders invent crap like "exposure to the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_52"&gt;language&lt;/span&gt;". The pathetic part is, believe or not, these people (and I purposely left out their name) are good programmers, why they insult their intelligence time and time again for Microsoft and Visual Studio is mind boggling? Here is a thought, they want to help the Visual Studio community, then in their next issue of code magazine demand Microsoft give us tools so we can get our work done in the most productive way possible, freaking get some balls and point out the bugs. Look, if you don't have the balls to speak the truth for fear of biting the hand that feeds you, just direct your readers to my website and I'll do it.&lt;br /&gt;&lt;br /&gt;I will break down what I think transpired, Microsoft was smart when they issued the end of life of Visual Basic and Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_53"&gt;FoxPro in this respect&lt;/span&gt;. Before Microsoft killed these solid products Microsoft grabbed the more respected cheerleaders in each community and promised them 75 virgins besides Vista Ultimate to spin Visual Studio. Microsoft was betting that the Visual Basic and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_54"&gt;FoxPro&lt;/span&gt; development community would blindly take the advise of community leaders and just follow along. (Well it wasn't the virgins, actually most got offered jobs in Redmond then disappeared into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_55"&gt;woodworks-I should find Griver's letter to the VFP community on the end of life and analyze that to prove my point&lt;/span&gt;) . Then with the Visual Studio community, Microsoft didn't want non-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_56"&gt;microsoft&lt;/span&gt; employees leading the development community so they created the Microsoft &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_57"&gt;Evangelist&lt;/span&gt; network, these are the A-team cheerleaders that spin visual studio. You know what, sadly for us, this plan worked perfectly. Developers are listening to the cheerleadering squads, which is exactly why we are stuck with this crappy bloated bullshit platform to write applications with. I have said it all along Microsoft may not release the best software (With Vista and Visual Studio I'm being nice) but they are smart when it comes to business.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_58"&gt;Ok&lt;/span&gt; I will get off my soap box, well there you have it another code challenge and Visual Studio lost again to Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_59"&gt;FoxPro&lt;/span&gt;. It is time to move off the class browser, inheritance and User Interface Layer for the time being as the Visual Studio suck factor is obvious. In the next installment of source code doesn't lie I will put &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_60"&gt;LINQ&lt;/span&gt;-TO-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_61"&gt;SQL&lt;/span&gt; up against &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_62"&gt;VFP'S&lt;/span&gt; native data centric language. Perhaps we can develop at light speed when creating middle tier components that perform basic business processing.&lt;br /&gt;&lt;br /&gt;By the way if you haven't checked out the Ms. Fox Pro (Ms. means female not Microsoft) video, do so, it is posted on my blog and also my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_63"&gt;facebook&lt;/span&gt; page.&lt;br /&gt;&lt;br /&gt;Until next time, be productive Developing at Bloat Speed!&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-8044955866191186923?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/8044955866191186923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=8044955866191186923' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8044955866191186923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8044955866191186923'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/03/source-code-doesnt-lie-4-ui-framework.html' title='Source Code Doesn&apos;t Lie #4: UI Framework Layer'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_x5nQAwrxvU4/SbCLhchMzYI/AAAAAAAAAHs/rmlFEYMVr-Q/s72-c/vfp_ui_base.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-9056803250531351487</id><published>2009-03-01T16:02:00.000-08:00</published><updated>2009-03-04T13:15:55.041-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><title type='text'>Weekend Update: Dot Net Chick VS Ms. Fox Pro</title><content type='html'>I was thinking today, what if Apple bought FoxPro instead of Microsoft? Given there was a FoxPro for Mac version it might have been possible. I'm sure Apple would develop a "simple" way to port my code over to the iPhone without a complete rewrite. My application would also run in any OS instead of being "used as bait" to feed the Microsoft monopoly by locking my clients to Windows through .BLOAT, you know the OS api wrappers Microsoft and the cheerleaders spin as the .NET framework.&lt;br /&gt;&lt;br /&gt;More importantly, if Apple would have bought FoxPro just think what great commericals Apple would have made to actually market FoxPro something Microsoft failed to do. Wouldn't it be cool if Apple would have followed a similar Mac vs PC format. Instead of the PC and Mac guy we had the DOT NET chick vs Ms. Fox Pro, like in the video below, I wonder which one you would perfer to take you where you want to go today?&lt;br /&gt;&lt;br /&gt;Definately check it out!&lt;br /&gt;&lt;br /&gt;&lt;object width="544" height="429" class="BLOG_video_class" id="BLOG_video-e89ddf97bade7634" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v12.nonxt2.googlevideo.com/videoplayback?id%3De89ddf97bade7634%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330291397%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5D8DCEA3D3FB8E6100D3D1E2B2D12A2994730088.28EDC36C2F08C1F55981DB4C7E1F2ACE86748343%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De89ddf97bade7634%26offsetms%3D5000%26itag%3Dw160%26sigh%3DijsDoYzeXAXBGXv582IR2zs5Zyk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="544" height="429" bgcolor="#FFFFFF"flashvars="flvurl=http://v12.nonxt2.googlevideo.com/videoplayback?id%3De89ddf97bade7634%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330291397%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D5D8DCEA3D3FB8E6100D3D1E2B2D12A2994730088.28EDC36C2F08C1F55981DB4C7E1F2ACE86748343%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3De89ddf97bade7634%26offsetms%3D5000%26itag%3Dw160%26sigh%3DijsDoYzeXAXBGXv582IR2zs5Zyk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Like everything there would be some downsides to Apple owning FoxPro, I would have to find some hobbies to occupy my free time. You know the time that I now waste writing tedious nonsensical Visual Studio "plumbing and glue code" that wasn't required in legacy technology, and working around bugs in LINQ for example when used in the middle tier&lt;br /&gt;&lt;br /&gt;Unforunately, I snapped back to reality only to look down at the Visual Studio IDE and thought life can be a real bitch sometime!&lt;br /&gt;&lt;br /&gt;In closing, later this week I will be releasing my next installment of Source Code Doesn't Lie: The User Interface Layer. You want to be sure to check it out!&lt;br /&gt;&lt;br /&gt;Until then have fun and "Develop at Bloat Speed!"&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-9056803250531351487?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=e89ddf97bade7634&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/9056803250531351487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=9056803250531351487' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/9056803250531351487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/9056803250531351487'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/03/weekend-update-mac-vs-pc-commercial.html' title='Weekend Update: Dot Net Chick VS Ms. Fox Pro'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-8489881909405009473</id><published>2009-02-27T11:17:00.000-08:00</published><updated>2009-02-28T23:15:02.661-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Class Browser'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Source Code Doesn't Lie #3 - The Visual Studio Class Browser</title><content type='html'>The heart of any object oriented application development should be the class browser. While there are numerous benefits to following object oriented design patterns, the two benefits I want to discuss are inheritance and programming code &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;reuseability&lt;/span&gt;. Given there are few things in life that suck less then the Class Browser found in Visual Studio (well .BLOAT does come to mind to think of it), it defies logic why the Visual Studio Class Browser has not been corrected.&lt;br /&gt;&lt;br /&gt;Before moving to looking at the class browser lets review a simple example of how inheritance works.&lt;br /&gt;&lt;br /&gt;Lets say we have a base class called "vehicle", and this base class has certain functionality (methods) such as "Turn on Engine", "Turn Off Engine", "Make Vehicle Go", "Make Vehicle Stop", "Motor" along with some &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;properties&lt;/span&gt; that tell us what is happening to the vehicle: "Are headlights On", "Is Motor Oil Full", "Are Seat Belts Fastened" etc....&lt;br /&gt;&lt;br /&gt;Next we are going to build a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;benz&lt;/span&gt; and a septic tank truck (class). Instead of building these classes from scratch we can start with the vehicle class and subclass it. By doing so we gain access to all the functionality found in the original vehicle class and we simple build upon it.&lt;br /&gt;&lt;br /&gt;By writing code in this manner we know the foundation is stable and tested i.e. the vehicle class. Besides that let's say we come up with a new &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;property&lt;/span&gt; like "Is Transmission Fluid Low" instead of adding this to both the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;benz&lt;/span&gt; and septic tank truck we only need to write the code into the vehicle class because the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;benz&lt;/span&gt; and septic tank are inherited from the vehicle class, this new property is there and ready for us to use. Neither the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;benz&lt;/span&gt; or septic tank truck have to worry about everything going on behind the scenes to make "Is Transmission Fluid Low" work.&lt;br /&gt;&lt;br /&gt;So it should be clear why this is a great programming model and a huge time saver.&lt;br /&gt;&lt;br /&gt;The purpose of the class browser is to allow us to work with these classes in a "productive" manner. Now let's compare the legacy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Foxpro's&lt;/span&gt; class browser to that of Microsoft newest technology &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;advancement&lt;/span&gt;, Visual Studio's Class Browser, to see if perhaps we can Develop at Light Speed using Visual Studio and maybe Microsoft's slogan for Visual Studio is correct.&lt;br /&gt;&lt;br /&gt;Below is the legacy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;FoxPro&lt;/span&gt; class browser. It is the standard explorer interface. For the purpose of this sample I added a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;UI&lt;/span&gt; control and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;subclassed&lt;/span&gt; it to prove it could be done and to point out this is something that CAN NOT be done in Microsoft newest tool Visual Studio, yes this is a WTF moment! The reasons why this is important is for developing a UI layer in N-TIER applications. The other thing that is noteworthy in FoxPro's class browser, class inheritance is performed in the class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;browser&lt;/span&gt; NOT in code like in the great Visual Studio 2008.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x5nQAwrxvU4/SahZ6mwtqtI/AAAAAAAAAGk/DEw9EoHj-9Y/s1600-h/vfpcb.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307591024228281042" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 233px" alt="" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/SahZ6mwtqtI/AAAAAAAAAGk/DEw9EoHj-9Y/s400/vfpcb.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Double clicking on a class allows you to drill into the class browser code environment where you can create &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;proprieties&lt;/span&gt;, methods and add programming code. With the legacy Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;FoxPro&lt;/span&gt; Class Browser you have a "productive" environment to get your work done. You have a property sheet that displays all the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;proprieties, events&lt;/span&gt; and methods for the class. Double click on the method in the property sheet you want to work with and a code window opens that only displays code for that method furthermore there is a "view parent code" button that brings up a window that contains the code in the base class for that method. Of course you have the option to export the class from the class browser to a file and work with the code outside the legacy class browser .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5nQAwrxvU4/Sahy6v13HFI/AAAAAAAAAG0/QNmmP0xf75c/s1600-h/vfpcb1.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307618514456484946" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 294px" alt="" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/Sahy6v13HFI/AAAAAAAAAG0/QNmmP0xf75c/s400/vfpcb1.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now lets examine the Great Visual Studio's Class Browser. It looks flashier then the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;VFP&lt;/span&gt; class browser but that is where the benefit, if that even is one, ends. It is entirely symbolism over substance. More importantly there is not a way to subclass the .BLOAT &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;UI&lt;/span&gt; controls using the class browser, remember this is something the legacy &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;FoxPro&lt;/span&gt; Class Browser could do.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_x5nQAwrxvU4/SahTsum1YPI/AAAAAAAAAGc/UR7an1calbA/s1600-h/vscb.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5307584188746391794" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 334px" alt="" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/SahTsum1YPI/AAAAAAAAAGc/UR7an1calbA/s400/vscb.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After the class diagram has been constructed you switch to, what I refer to as, Visual Studio's DOS MODE and you are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;basically&lt;/span&gt; digging through code to do everything that needs to be done with the classes. Unlike the legacy Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;FoxPro's class browser&lt;/span&gt;, Visual Studio doesn't provide you with a productive code environment instead we are given a text editor with intellisense to maintain the code.&lt;br /&gt;&lt;br /&gt;Below is the code the simple vehicle class structure generated that we have to maintain using Visual Studio 2008 glorified text editor.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;namespace&lt;/span&gt; sample&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;class Vehicle&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public int &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;IsOilFull&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;AreHeadLightsOn&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public int &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;AreSeatBeltsFastened&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;get&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;set&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void Motor()&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;TurnEngineOn&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;TurnEngineOff&lt;/span&gt;()&lt;br /&gt;{&lt;br /&gt;throw new System.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;NotImplementedException&lt;/span&gt;();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class Benz : Vehicle&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;SepticTruck&lt;/span&gt; : Vehicle&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;It should be clear the Class Browser in Microsoft's Great Visual Studio 2008 is about as useful to developers as an Indian Saris is to Jenna Jameson.&lt;br /&gt;&lt;br /&gt;Now you are thinking Mark that only is your opinion of the Visual Studio Class Browser. But oh not so Markus Egger MVP, VS cheerleader and editor of code magazine wrote the following in his blog.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;..."The class browser was the VFP workhorse tool, true. Especially in the early days of .NET I have often wished I had it, especially since OO is and always has been so important to me. I even considered writing one"... &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;To add insult to injury, with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;WPF&lt;/span&gt; Microsoft is moving away from this productive object oriented subclass programming paradigm for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;UI&lt;/span&gt; controls to the miserable XAML composition implementation. In a future post, I will explain in great and gory detail why Microsoft's decision to implement the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;WPF/XAML&lt;/span&gt; paradigm is misguided and flawed at best. Their decision can only be compared to deciding to spend Christmas in Iraq! As hard as it is believe the WPF tools suck even worse then what we currently have available to us in Visual Studio, I really didn't even think that was possible, but yes friends it is true leave it Microsoft to develop the impossible. Unforunately for developers in this case it is not a good thing!&lt;br /&gt;&lt;br /&gt;I'm still trying to find out what Microsoft meant by "Development at Light Speed" in the context of the Great Visual Studio perhaps they are comparing Visual Studio to assembler? Maybe we will have more luck with my next post trying to figure this out...&lt;br /&gt;&lt;br /&gt;The score sheet thus far:&lt;br /&gt;&lt;br /&gt;Sample Application: Legacy FoxPro beats Visual Studio 2008 and .NET&lt;br /&gt;Class Browser: Legacy FoxPro beats Visual Studio 2008 and .NET&lt;br /&gt;&lt;br /&gt;Legacy Visual FoxPro: 2 points&lt;br /&gt;Visual Studio 2008 and .BLOAT: 0 points&lt;br /&gt;&lt;br /&gt;Maybe I should have used DOS Foxbase to compare against Visual Studio 2008 to give Visual Studio a chance.&lt;br /&gt;&lt;br /&gt;Until next time let's all "develop at bloat speed" with Visual Studio 2008 and the 70k+ classes of the .BLOAT API wrappers.&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-8489881909405009473?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/8489881909405009473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=8489881909405009473' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8489881909405009473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8489881909405009473'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/02/source-code-doesnt-lie-part-3-vs-class.html' title='Source Code Doesn&apos;t Lie #3 - The Visual Studio Class Browser'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x5nQAwrxvU4/SahZ6mwtqtI/AAAAAAAAAGk/DEw9EoHj-9Y/s72-c/vfpcb.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-8577855844331885287</id><published>2009-02-20T20:21:00.000-08:00</published><updated>2009-02-28T23:15:48.699-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><title type='text'>SOURCE CODE DOESN'T LIE PART 2: The sample application code in C#</title><content type='html'>If you recall in my prior post I wrote a small application using the outdated legacy development tool known as Visual FoxPro and I had to write about 26 lines of code to finish the application and it took about 8 minutes. The legacy Visual FoxPro code and application specifications are in the previous blog entry.&lt;br /&gt;&lt;br /&gt;When I was assembling the C# code contained in this post, since neither Sam or anyone else wanted to even quote the application let alone write it, I was thinking of all these witty criticisms to preface the code. However I don't even need to say anything else as I truely believe the volume of code this application required, that Sam referred to as a "toy", speaks for itself.&lt;br /&gt;&lt;br /&gt;Update 2/23/2009&lt;br /&gt;I was reading through mini microsofts blog which is one of favorites and I found this quote I wanted to share with you as he defined visual studio, wpf, mvc perfectly!&lt;br /&gt;&lt;br /&gt;"Going big and broad and trying to enter and dominate every possible software market is exactly what resulted in Microsoft having reactive and broad, shallow features that are rushed out lacking polish and usually lead to user frustration as the shallow experience putters out. "&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enjoy the show!&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;strong&gt;&lt;em&gt;Dot Bloat proudly present "Developing at Light Speed! "&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;Act 1: The Screen Shots To Prove The Code Runs!&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/SZ-O9ZjinNI/AAAAAAAAAGM/yNqMmBIbDQQ/s1600-h/app.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5305116071548853458" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 269px" alt="" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/SZ-O9ZjinNI/AAAAAAAAAGM/yNqMmBIbDQQ/s400/app.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Act 2: The Source Code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Application Start Up Code&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Code auto generated by Visual Studio to launch the application.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;namespace sample&lt;br /&gt;{&lt;br /&gt;static class Program&lt;br /&gt;{&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// The main entry point for the application.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;[STAThread]&lt;br /&gt;static void Main()&lt;br /&gt;{&lt;br /&gt;Application.EnableVisualStyles();&lt;br /&gt;Application.SetCompatibleTextRenderingDefault(false);&lt;br /&gt;Application.Run(new Form1());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;UI Form Code&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;The form designer code auto generated by Visual Studio&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;namespace sample&lt;br /&gt;{&lt;br /&gt;partial class Form1&lt;br /&gt;{&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Required designer variable.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;private System.ComponentModel.IContainer components = null;&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Clean up any resources being used.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;/// &lt;param name="disposing"&gt;true if managed resources should be disposed; otherwise, false.&lt;/param&gt;&lt;br /&gt;protected override void Dispose(bool disposing)&lt;br /&gt;{&lt;br /&gt;if (disposing &amp;amp;&amp;amp; (components != null))&lt;br /&gt;{&lt;br /&gt;components.Dispose();&lt;br /&gt;}&lt;br /&gt;base.Dispose(disposing);&lt;br /&gt;}&lt;br /&gt;#region Windows Form Designer generated code&lt;br /&gt;/// &lt;summary&gt;&lt;br /&gt;/// Required method for Designer support - do not modify&lt;br /&gt;/// the contents of this method with the code editor.&lt;br /&gt;/// &lt;/summary&gt;&lt;br /&gt;private void InitializeComponent()&lt;br /&gt;{&lt;br /&gt;this.button1 = new System.Windows.Forms.Button();&lt;br /&gt;this.button2 = new System.Windows.Forms.Button();&lt;br /&gt;this.button3 = new System.Windows.Forms.Button();&lt;br /&gt;this.dataGridView1 = new System.Windows.Forms.DataGridView();&lt;br /&gt;this.textBox1 = new System.Windows.Forms.TextBox();&lt;br /&gt;this.label1 = new System.Windows.Forms.Label();&lt;br /&gt;((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();&lt;br /&gt;this.SuspendLayout();&lt;br /&gt;//&lt;br /&gt;// button1&lt;br /&gt;//&lt;br /&gt;this.button1.Location = new System.Drawing.Point(403, 371);&lt;br /&gt;this.button1.Name = "button1";&lt;br /&gt;this.button1.Size = new System.Drawing.Size(75, 23);&lt;br /&gt;this.button1.TabIndex = 0;&lt;br /&gt;this.button1.Text = "button1";&lt;br /&gt;this.button1.UseVisualStyleBackColor = true;&lt;br /&gt;this.button1.Click += new System.EventHandler(this.button1_Click);&lt;br /&gt;//&lt;br /&gt;// button2&lt;br /&gt;//&lt;br /&gt;this.button2.Location = new System.Drawing.Point(479, 371);&lt;br /&gt;this.button2.Name = "button2";&lt;br /&gt;this.button2.Size = new System.Drawing.Size(75, 23);&lt;br /&gt;this.button2.TabIndex = 1;&lt;br /&gt;this.button2.Text = "button2";&lt;br /&gt;this.button2.UseVisualStyleBackColor = true;&lt;br /&gt;//&lt;br /&gt;// button3&lt;br /&gt;//&lt;br /&gt;this.button3.Location = new System.Drawing.Point(556, 371);&lt;br /&gt;this.button3.Name = "button3";&lt;br /&gt;this.button3.Size = new System.Drawing.Size(75, 23);&lt;br /&gt;this.button3.TabIndex = 2;&lt;br /&gt;this.button3.Text = "button3";&lt;br /&gt;this.button3.UseVisualStyleBackColor = true;&lt;br /&gt;this.button3.Click += new System.EventHandler(this.button3_Click);&lt;br /&gt;//&lt;br /&gt;// dataGridView1&lt;br /&gt;//&lt;br /&gt;this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;&lt;br /&gt;this.dataGridView1.Location = new System.Drawing.Point(1, 27);&lt;br /&gt;this.dataGridView1.Name = "dataGridView1";&lt;br /&gt;this.dataGridView1.Size = new System.Drawing.Size(630, 341);&lt;br /&gt;this.dataGridView1.TabIndex = 3;&lt;br /&gt;//&lt;br /&gt;// textBox1&lt;br /&gt;//&lt;br /&gt;this.textBox1.Location = new System.Drawing.Point(128, 3);&lt;br /&gt;this.textBox1.Name = "textBox1";&lt;br /&gt;this.textBox1.Size = new System.Drawing.Size(344, 20);&lt;br /&gt;this.textBox1.TabIndex = 4;&lt;br /&gt;//&lt;br /&gt;// label1&lt;br /&gt;//&lt;br /&gt;this.label1.AutoSize = true;&lt;br /&gt;this.label1.Location = new System.Drawing.Point(12, 6);&lt;br /&gt;this.label1.Name = "label1";&lt;br /&gt;this.label1.Size = new System.Drawing.Size(35, 13);&lt;br /&gt;this.label1.TabIndex = 5;&lt;br /&gt;this.label1.Text = "label1";&lt;br /&gt;this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;&lt;br /&gt;//&lt;br /&gt;// Form1&lt;br /&gt;//&lt;br /&gt;this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);&lt;br /&gt;this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;&lt;br /&gt;this.ClientSize = new System.Drawing.Size(633, 399);&lt;br /&gt;this.Controls.Add(this.label1);&lt;br /&gt;this.Controls.Add(this.textBox1);&lt;br /&gt;this.Controls.Add(this.dataGridView1);&lt;br /&gt;this.Controls.Add(this.button3);&lt;br /&gt;this.Controls.Add(this.button2);&lt;br /&gt;this.Controls.Add(this.button1);&lt;br /&gt;this.Name = "Form1";&lt;br /&gt;this.Text = "Form1";&lt;br /&gt;this.Load += new System.EventHandler(this.Form1_Load);&lt;br /&gt;((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();&lt;br /&gt;this.ResumeLayout(false);&lt;br /&gt;this.PerformLayout();&lt;br /&gt;}&lt;br /&gt;#endregion&lt;br /&gt;private System.Windows.Forms.Button button1;&lt;br /&gt;private System.Windows.Forms.Button button2;&lt;br /&gt;private System.Windows.Forms.Button button3;&lt;br /&gt;private System.Windows.Forms.DataGridView dataGridView1;&lt;br /&gt;private System.Windows.Forms.TextBox textBox1;&lt;br /&gt;private System.Windows.Forms.Label label1;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;The C# Code which was manually written for the form&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.ComponentModel;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Drawing;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Windows.Forms;&lt;br /&gt;//Sample data layer and generic file utilities class&lt;br /&gt;using SampleDataLayer;&lt;br /&gt;using SampleFileUtilities;&lt;br /&gt;namespace sample&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public partial class Form1 : Form&lt;br /&gt;{&lt;br /&gt;//Create a property to hold the dataset&lt;br /&gt;DataSet oDataSet;&lt;br /&gt;&lt;br /&gt;public Form1()&lt;br /&gt;{&lt;br /&gt;InitializeComponent();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void Form1_Load(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;//Note: I put the code to populate the grid in the form load event&lt;br /&gt;//when developing this app and I forgot to move it to the populate&lt;br /&gt;// button on the form. Therefore there is no click event code in the&lt;br /&gt;// populate button and I'm too lazy to worry about it now - I do apologize.....&lt;br /&gt;//&lt;br /&gt;//This section of code could have been done using the property sheet&lt;br /&gt;//Set the label captions&lt;br /&gt;this.label1.Text = "Selected Filename:";&lt;br /&gt;&lt;br /&gt;// Put the captions on the command buttons&lt;br /&gt;this.button1.Text = "Get File";&lt;br /&gt;this.button2.Text = "Populate Grid";&lt;br /&gt;this.button3.Text = "Export Grid";&lt;br /&gt;//Put a caption on the form&lt;br /&gt;this.Text = "Visual Studio Sample";&lt;br /&gt;//End playing with simple properties&lt;br /&gt;&lt;br /&gt;//Create the data layer&lt;br /&gt;DataLayer oDataLayer = new DataLayer();&lt;br /&gt;//Create a binding source object for the grid&lt;br /&gt;BindingSource oBindingSource = new BindingSource();&lt;br /&gt;//We need to get a dataset so the grid has something to play with&lt;br /&gt;//I stored it in a property just to make passing it around easier for clarity in the sample.&lt;br /&gt;this.oDataSet = oDataLayer.PopulateDataSet("Select * from person.contact", "dsPersons");&lt;br /&gt;//Now we need to bind the dataset to the BindingSource&lt;br /&gt;oBindingSource.DataSource = this.oDataSet;&lt;br /&gt;&lt;br /&gt;//Finally we hand the bindingsource datasource off to the datagrid&lt;br /&gt;this.dataGridView1.DataSource = oBindingSource.DataSource;&lt;br /&gt;this.dataGridView1.DataMember = "dsPersons";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void button1_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;// Create the save file dialog object&lt;br /&gt;SaveFileDialog dlg = new SaveFileDialog();&lt;br /&gt;&lt;br /&gt;//Populate the pull down list in the save file dialogue&lt;br /&gt;dlg.Filter = "Excel Files (*.xls)*.xls";&lt;br /&gt;&lt;br /&gt;// Show the box and ensure the ok button has been pressed&lt;br /&gt;if (dlg.ShowDialog() == DialogResult.OK)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;// Update the form with the name of file the user entered&lt;br /&gt;this.textBox1.Text = dlg.FileName;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private void button3_Click(object sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;//Get a reference to the fileutilites namespace&lt;br /&gt;FileUtilities oFile = new FileUtilities();&lt;br /&gt;&lt;br /&gt;// Send the data to excel&lt;br /&gt;oFile.ExportToExcel(this.oDataSet, this.textBox1.Text.ToString().Trim());&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Yes keep scrolling down there is more code yet to come!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Data Access Class Code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.SqlClient;&lt;br /&gt;namespace SampleDataLayer&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public class DataLayer&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;public DataLayer()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// For fairness in the comparision I used basically a simple read only data set.&lt;br /&gt;// To send up to the form to bind to the grid.&lt;br /&gt;&lt;br /&gt;public DataSet PopulateDataSet(String cSelectCommand, string cDataSetName)&lt;br /&gt;{&lt;br /&gt;//Create a data set that we can populate&lt;br /&gt;DataSet ds = new DataSet();&lt;br /&gt;&lt;br /&gt;//Establish the connection to SQL Server&lt;br /&gt;//For the sake of this sample the connection string is hard coded&lt;br /&gt;//in production applications the SQLConnectionStringBuilder would be used.&lt;br /&gt;//The connection string was removed for security reasons&lt;br /&gt;SqlConnection oSqlConnection = new SqlConnection("MyConnectionString");&lt;br /&gt;&lt;br /&gt;//Create the sql command object&lt;br /&gt;SqlCommand oSqlCommand = new SqlCommand();&lt;br /&gt;&lt;br /&gt;//Tell the sql object what type of statement we are going to work with&lt;br /&gt;oSqlCommand.CommandType = CommandType.Text;&lt;br /&gt;&lt;br /&gt;//Pass the sql statement to the sql command object&lt;br /&gt;//In a production application should set other properities such as the timeout etc.&lt;br /&gt;oSqlCommand.CommandText = cSelectCommand;&lt;br /&gt;&lt;br /&gt;//Bind the connection object to the sql command&lt;br /&gt;oSqlCommand.Connection = oSqlConnection;&lt;br /&gt;&lt;br /&gt;//Create a data adapter&lt;br /&gt;SqlDataAdapter da = new SqlDataAdapter(oSqlCommand);&lt;br /&gt;&lt;br /&gt;//Try Catch Throw structure should be used to handle errors&lt;br /&gt;//But I didn't want to be accused of code bloating - Lighten up it was a joke&lt;br /&gt;&lt;br /&gt;//Open the sql connection&lt;br /&gt;oSqlConnection.Open();&lt;br /&gt;&lt;br /&gt;//Fill the dataset&lt;br /&gt;da.Fill(ds, cDataSetName);&lt;br /&gt;&lt;br /&gt;//Close the sql connection&lt;br /&gt;oSqlConnection.Close();&lt;br /&gt;&lt;br /&gt;//Return the data set&lt;br /&gt;return ds;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em&gt;You are in the home stretch 150+ lines of code left! And remember it took VFP 26 lines of code....&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Utility File Class Code&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Note: The less than and greater than signs and slashes in this section of code was messing up the formatting of the blog. Those characters have been replaced with the word slash, lt and gt.&lt;br /&gt;This code, with the exception of the patching I had to put in to extend the datatype support, was originally published on codeplex.&lt;br /&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Data;&lt;br /&gt;&lt;br /&gt;namespace SampleFileUtilities&lt;br /&gt;{&lt;br /&gt;public class FileUtilities&lt;br /&gt;{&lt;br /&gt;public FileUtilities()&lt;br /&gt;{&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Allows the dataset to be exported to excel&lt;br /&gt;//&lt;br /&gt;// Codeplex introduction&lt;br /&gt;// This function takes in a DataSet and file name and writes the DataSet to an Excel worksheet.&lt;br /&gt;//The code is pretty straightforward. Great thing about this function is that, it's technically an&lt;br /&gt;//XML file that is saved as an XLS file. So it can be used as either file format. No more leading zero&lt;br /&gt;//truncation on numbers that look like strings. Example, if you made a tab delimited file and put a field&lt;br /&gt;//such as "00036" (a field that looks like a number but should be regarded as a string), MS Excel would truncate the leading zeros...&lt;br /&gt;//This problem is solved with this method.&lt;br /&gt;//&lt;br /&gt;//I really enjoy the problem solved with this method - In VFP a single line of code SOLVES this problem&lt;br /&gt;&lt;br /&gt;public void ExportToExcel(DataSet source, string fileName)&lt;br /&gt;{&lt;br /&gt;System.IO.StreamWriter excelDoc;&lt;br /&gt;&lt;br /&gt;excelDoc = new System.IO.StreamWriter(fileName);&lt;br /&gt;const string startExcelXML = "LTxml versionGT SLASH r SLASH nLTWorkbook " +&lt;br /&gt;"xmlns= SLASH "urn:schemas-microsoft-com:office:spreadsheet SLASH " SLASH r SLASH n" +&lt;br /&gt;" xmlns:o= SLASH "urn:schemas-microsoft-com:office:office SLASH " SLASH r SLASH n " +&lt;br /&gt;"xmlns:x= SLASH "urn:schemas- microsoft-com:office:" +&lt;br /&gt;"excel SLASH " SLASH r SLASH n xmlns:ss= SLASH "urn:schemas-microsoft-com:" +&lt;br /&gt;"office:spreadsheet SLASH "GT SLASH r SLASH n LTStylesGT SLASH r SLASH n " +&lt;br /&gt;"LTStyle ss:ID= SLASH "Default SLASH " ss:Name= SLASH "Normal SLASH "GT SLASH r SLASH n " +&lt;br /&gt;"LTAlignment ss:Vertical= SLASH "Bottom SLASH "/GT SLASH r SLASH n LTBorders/GT" +&lt;br /&gt;" SLASH r SLASH n LTFont/GT SLASH r SLASH n LTInterior/GT SLASH r SLASH n LTNumberFormat/GT" +&lt;br /&gt;" SLASH r SLASH n LTProtection/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n " +&lt;br /&gt;"LTStyle ss:ID= SLASH "BoldColumn SLASH "GT SLASH r SLASH n LTFont " +&lt;br /&gt;"x:Family= SLASH "Swiss SLASH " ss:Bold= SLASH "1 SLASH "/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n " +&lt;br /&gt;"LTStyle ss:ID= SLASH "StringLiteral SLASH "GT SLASH r SLASH n LTNumberFormat" +&lt;br /&gt;" ss:Format= SLASH "@ SLASH "/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n LTStyle " +&lt;br /&gt;"ss:ID= SLASH "Decimal SLASH "GT SLASH r SLASH n LTNumberFormat " +&lt;br /&gt;"ss:Format= SLASH "0.0000 SLASH "/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n " +&lt;br /&gt;"LTStyle ss:ID= SLASH "Integer SLASH "GT SLASH r SLASH n LTNumberFormat " +&lt;br /&gt;"ss:Format= SLASH "0 SLASH "/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n LTStyle " +&lt;br /&gt;"ss:ID= SLASH "DateLiteral SLASH "GT SLASH r SLASH n LTNumberFormat " +&lt;br /&gt;"ss:Format= SLASH "mm/dd/yyyy;@ SLASH "/GT SLASH r SLASH n LT/StyleGT SLASH r SLASH n " +&lt;br /&gt;"LT/StylesGT SLASH r SLASH n ";&lt;br /&gt;const string endExcelXML = "LT/WorkbookGT";&lt;br /&gt;&lt;br /&gt;int rowCount = 0;&lt;br /&gt;int sheetCount = 1;&lt;br /&gt;excelDoc.Write(startExcelXML);&lt;br /&gt;excelDoc.Write("LTWorksheet ss:Name= SLASH "Sheet" + sheetCount + " SLASH "GT");&lt;br /&gt;excelDoc.Write("LTTableGT");&lt;br /&gt;excelDoc.Write("LTRowGT");&lt;br /&gt;for (int x = 0; x LT source.Tables[0].Columns.Count; x++)&lt;br /&gt;{&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "BoldColumn SLASH "GTLTData ss:Type= SLASH "String SLASH "GT");&lt;br /&gt;excelDoc.Write(source.Tables[0].Columns[x].ColumnName);&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;}&lt;br /&gt;excelDoc.Write("LT/RowGT");&lt;br /&gt;foreach (DataRow x in source.Tables[0].Rows)&lt;br /&gt;{&lt;br /&gt;rowCount++;&lt;br /&gt;//if the number of rows is GT 64000 create a new page to continue output&lt;br /&gt;if (rowCount == 64000)&lt;br /&gt;{&lt;br /&gt;rowCount = 0;&lt;br /&gt;sheetCount++;&lt;br /&gt;excelDoc.Write("LT/TableGT");&lt;br /&gt;excelDoc.Write(" LT/WorksheetGT");&lt;br /&gt;excelDoc.Write("LTWorksheet ss:Name= SLASH "Sheet" + sheetCount + " SLASH "GT");&lt;br /&gt;excelDoc.Write("LTTableGT");&lt;br /&gt;}&lt;br /&gt;excelDoc.Write("LTRowGT"); //ID=" + rowCount + "&lt;br /&gt;for (int y = 0; y LT source.Tables[0].Columns.Count; y++)&lt;br /&gt;{&lt;br /&gt;System.Type rowType;&lt;br /&gt;rowType = x[y].GetType();&lt;br /&gt;switch (rowType.ToString())&lt;br /&gt;{&lt;br /&gt;case "System.String":&lt;br /&gt;string XMLstring = x[y].ToString();&lt;br /&gt;XMLstring = XMLstring.Trim();&lt;br /&gt;XMLstring = XMLstring.Replace("&amp;amp;", "&amp;amp;");&lt;br /&gt;XMLstring = XMLstring.Replace("GT", "GT");&lt;br /&gt;XMLstring = XMLstring.Replace("LT", "LT");&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "StringLiteral SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "String SLASH "GT");&lt;br /&gt;excelDoc.Write(XMLstring);&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;case "System.DateTime":&lt;br /&gt;//Excel has a specific Date Format of YYYY-MM-DD followed by&lt;br /&gt;//the letter 'T' then hh:mm:sss.lll Example 2005-01-31T24:01:21.000&lt;br /&gt;//The Following Code puts the date stored in XMLDate&lt;br /&gt;//to the format above&lt;br /&gt;DateTime XMLDate = (DateTime)x[y];&lt;br /&gt;string XMLDatetoString = ""; //Excel Converted Date&lt;br /&gt;XMLDatetoString = XMLDate.Year.ToString() +&lt;br /&gt;"-" +&lt;br /&gt;(XMLDate.Month LT 10 ? "0" +&lt;br /&gt;XMLDate.Month.ToString() : XMLDate.Month.ToString()) +&lt;br /&gt;"-" +&lt;br /&gt;(XMLDate.Day LT 10 ? "0" +&lt;br /&gt;XMLDate.Day.ToString() : XMLDate.Day.ToString()) +&lt;br /&gt;"T" +&lt;br /&gt;(XMLDate.Hour LT 10 ? "0" +&lt;br /&gt;XMLDate.Hour.ToString() : XMLDate.Hour.ToString()) +&lt;br /&gt;":" +&lt;br /&gt;(XMLDate.Minute LT 10 ? "0" +&lt;br /&gt;XMLDate.Minute.ToString() : XMLDate.Minute.ToString()) +&lt;br /&gt;":" +&lt;br /&gt;(XMLDate.Second LT 10 ? "0" +&lt;br /&gt;XMLDate.Second.ToString() : XMLDate.Second.ToString()) +&lt;br /&gt;".000";&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "DateLiteral SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "DateTime SLASH "GT");&lt;br /&gt;excelDoc.Write(XMLDatetoString);&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;case "System.Boolean":&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "StringLiteral SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "String SLASH "GT");&lt;br /&gt;excelDoc.Write(x[y].ToString());&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;case "System.Int16":&lt;br /&gt;case "System.Int32":&lt;br /&gt;case "System.Guid":&lt;br /&gt;case "System.Int64":&lt;br /&gt;case "System.Byte":&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "Integer SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "Number SLASH "GT");&lt;br /&gt;excelDoc.Write(x[y].ToString());&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;case "System.Decimal":&lt;br /&gt;case "System.Double":&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "Decimal SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "Number SLASH "GT");&lt;br /&gt;excelDoc.Write(x[y].ToString());&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;case "System.DBNull":&lt;br /&gt;excelDoc.Write("LTCell ss:StyleID= SLASH "StringLiteral SLASH "GT" +&lt;br /&gt;"LTData ss:Type= SLASH "String SLASH "GT");&lt;br /&gt;excelDoc.Write("");&lt;br /&gt;excelDoc.Write("LT/DataGTLT/CellGT");&lt;br /&gt;break;&lt;br /&gt;default:&lt;br /&gt;throw (new Exception(rowType.ToString() + " not handled."));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;excelDoc.Write("LT/RowGT");&lt;br /&gt;}&lt;br /&gt;excelDoc.Write("LT/TableGT");&lt;br /&gt;excelDoc.Write(" LT/WorksheetGT");&lt;br /&gt;excelDoc.Write(endExcelXML);&lt;br /&gt;excelDoc.Close();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;em&gt;That's all folks....&lt;/em&gt;&lt;br /&gt;&lt;em&gt;The End&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-8577855844331885287?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/8577855844331885287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=8577855844331885287' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8577855844331885287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/8577855844331885287'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/02/mark-going-easy-on-microsoft-sample.html' title='SOURCE CODE DOESN&apos;T LIE PART 2: The sample application code in C#'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_x5nQAwrxvU4/SZ-O9ZjinNI/AAAAAAAAAGM/yNqMmBIbDQQ/s72-c/app.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-9058546988836655872</id><published>2009-02-16T19:49:00.001-08:00</published><updated>2009-02-28T23:21:34.508-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Source Code Doesn't Lie</title><content type='html'>&lt;span style="font-size:130%;"&gt;MSFT'S NEW CATCH PHRASE - &lt;/span&gt;&lt;span style="font-size:130%;"&gt;VISUAL STUDIO: DEVELOPING AT LIGHT SPEED &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Perhaps they confused the source code with FoxPro when they came up with this slogan as the code comparision is complete. To develop the same application between Visual FoxPro -vs- Visual Studio the results are:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;VISUAL FOXPRO 26 LINES OF CODE - 8 MINUTES *&lt;/span&gt;&lt;span style="font-size:85%;"&gt;from scratch&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;VISUAL STUDIO 2008 POWERED BY 70K+ CLASSES OF .NET BLOAT 300+ LINES OF CODE - 35 MINUTES! *&lt;/span&gt;&lt;span style="font-size:85%;"&gt;using some of my prewrriten framework components!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Background&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;If anyone has been following my friend Soma’s blog, Someone named Sam and I have been debating the pros and cons of using Microsoft's Latest and Greatest Rapid Application Development Toolkit otherwise known as Visual Studio/.NET compared to the outdated legacy Visual Basic and Visual FoxPro development tools. In the event you haven't been following this I will give you the short version of what has transpired so far:&lt;br /&gt;&lt;br /&gt;Sam appears to be your typical VS cheerleader or Microsoft employee not sure which as he refuses to answer the question even thou I asked him multiple times. He is very pro Visual Studio to say the least and needless to say I have a difference of opinion. After several rounds of back and forth debating various points, I asked him to write a small N-TIER application using The Great Visual Studio 2008 and I will do the same using the outdated legacy application FoxPro 9.0..&lt;br /&gt;&lt;br /&gt;Now here is the really cool part Sam would like nothing better then for me to quit posting on Soma's blog and furthermore he would be delighted if I quit telling the truth about Visual Studio, I'm sure Soma would like that as well. Therefore I stated if Sam could write this application in fewer lines of code using Visual Studio 2008 then I can in Visual FoxPro I will stop posting on Soma's blog. Seems fair enough. I will extend this offer to Soma and Scott Gu as well. Just post the code in the comments of my blog and use Visual Studio 2008 - I really don't care if they use VB.NET or C# just make it a simple N-TIER application hopefully using LINQ so I can mock the poorly implemented data context and helper objects that are required to use Linq in the middle tier.&lt;br /&gt;&lt;br /&gt;Now common sense would lead us to believe a new great technology such as Visual Studio powered by all bloat in .NET should be the easy victor after all would Microsoft's marketing department and the cheerleaders try to misinform us? Especially since FoxPro is no longer worthy of even being produced anymore by Microsoft.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;Specifications&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;The specs are simple, create a very small N-TIER application (user interface, data layer, database) that simply displays a form, connects to SQL Server that pulls some customer data from adventureworks or northwest sample database. Display the data in a grid formatted correctly (phone numbers etc) contained on the form and include a command button to save the data to excel. .&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Actions speaks louder then words&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;Given I made this wager I wanted to keep up my end of the bargain. I wrote this little application.  The application required 26 lines of FoxPro code and took 8 minutes to generate. There is some code that the form designer auto generated that I did not count. At the end of the blog I included all the code.&lt;br /&gt;&lt;br /&gt;The WinForms C# version which I wrote tonight also, using my C# framework required 35 minutes. I do not have an exact line count as I had to allow for my framework code. Making a rough estimate excluding framework code, the application is around 3o0 lines of code.&lt;br /&gt;&lt;br /&gt;Since I already had much of the functionality written into my "framework" it is hard to tell exactly how long this would take by hand to code out, I'm guessing a minimum of 2 hours assuming codeplex was used to steal some sample excel export logic since VS doesn't natively export to excel, as a sidebar can you freaking believe 70k classes of bloat in .NET and can't freaking export a dataset to excel WTF! - anyway- However, if you wrote everything from scratch including the excel export (which would be the fairest comparision given that is how I wrote the VFP application) I would bill this out at a minimum 6 hours using Visual Studio 2008 and .BLOAT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Development Cost&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;em&gt;Visual FoxPro&lt;/em&gt;: If I used VFP dbf files instead of SQL Server this application would cost about 50 bucks as that is the minimum I charge. Of course VFP has a royalty free distribution so no licensing is involved and yes it would support more then 20 users.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Visual Studio:&lt;/em&gt; The Rapid Application Development Tool Visual Studio Microsoft Latest and Greatest Development Environment required more then 10 times more code then Visual Foxpro to write the same application. &lt;strong&gt;YES THAT IS RIGHT MORE THEN 10 TIMES MORE CODE THEN FOXPRO.&lt;/strong&gt; Being generous I will use the 2 hour estimate for the sake of argument. If we assume 125 a hour is the going rate for a Visual Studio Programmer the cost is 250 dollars. Then we still have to be concerned with data storage and hardware requirements to even get the application to run.&lt;br /&gt;&lt;br /&gt;Even if you really want to remain in your fantasy Visual Studio World and think I don't know what I'm talking about, as misguided and flawed as that thought pattern is, below is a comment from a Microsoft MVP regarding the cost of a Visual Studio application.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;...Les Pinter has a nice strategy for selling VFP apps.He first shows to his audience, most likely managers and budget-responsible people, the whole myriad of classes and possibilities of VB.Net of C# or whatever they can come up with.He is driving them crazy with all the things you can do in .NET to a point where they ask him for a price to develop that must-have application XYZ.He gives them the price and the time to deploy the app and tells them there is an alternative.... and then says, "nahhh, you probably won't be interested, it will cost you only 25% of the price I just mentioned but it won't be interesting of you". Well, those budget-responsible people ARE interested then, and then he shows them his "special framework, developed in C++, AKA VFP".He drives their minds to a boiling point with another show-off from VFP and compares that with the things he just showed to his audience. And shows that it is indeed, remarkably quicker, and, what's more, cheaper!!&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Waiting for the cheerleaders to prove me wrong&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I will give Sam or any other cheerleader for the matter that disagrees with my assessment sometime to respond perhaps a couple of weeks and we can see what the self proclaimed expert VS programmers can do. If I don't hear anything, which wouldn't surprise me, I will post my VS code.&lt;br /&gt;&lt;br /&gt;I even took this one step further I offered to pay Sam to code the application in WPF and Winforms. The only catch is I get to post the code on my blog. So we will see if Sam takes me up on my offer.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Cheerleaders - No excuses for Visual Studio Please - Source Code Doesn't Lie&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;I know the arguments the cheerleaders will make:&lt;br /&gt;&lt;br /&gt;1) This application is simple - Have you happen to see the examples GU uses to showcase new technology none of it is real world, cheerleaders get off and praise him for it! The size of the project shouldn't matter! The bottom line is new technology should be better then legacy technology even for simple tasks that is called progress. If new technology is not better then legacy technology it is called going backwards. If we have to pay more for new technology so we can move in a backward direction that is called getting screwed!&lt;br /&gt;&lt;br /&gt;2) Visual Studio can do all this cool stuff Visual FoxPro and Visual Basic Can't - Some of this argument might be valid but guess what C++ can! And yes C++ DLL libraries can be consumed by FoxPro more over many small and medium size businesses only require a LAN based crud database application they don't need enterprise based features.&lt;br /&gt;&lt;br /&gt;3) What about internet - I'm referring to lan based desktop application database development for small and medium size businesses. The market Microsoft can careless about!&lt;br /&gt;&lt;br /&gt;4) What about data level security - Guess what FoxPro can access SQL Server so how is FoxPro to SQL Server different than Visual Studio to SQL Server. If it is written correctly!&lt;br /&gt;&lt;br /&gt;I'm sure they will come up with other excuses and I will deal with those as they arise.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Why do this to the Great Visual Studio and expose the truth?&lt;br /&gt;&lt;br /&gt;&lt;/em&gt;&lt;/strong&gt;No I'm not pro-mac or unix over Microsoft. I develop for the Windows platform, I really wish they gave us the "right" tools for the job - that is what I want. What I am is totally pissed about is the amount of extra work VS requires to code out an application compared to other development tools that Microsoft has stopped producing (VB/VFP), the high cost of ownership related to Visual Studio for small and medium size businesses, all the cheerleadering/bullshit going on how great VS/.BLOAT are - this amounts to spin and wishful thinking.&lt;br /&gt;&lt;br /&gt;Furthermore, VS lacks a complete implementation/integration between technologies such as WPF/ Winforms (Can you say blend) and MVC and ASP on the web side of things, everything floats out there in a half finished state of suck! Then there is all the bs plumbing/glue code to get everything working right which we should not have to worry about especially on the web side of development - want examples just view GU'S blog it is full of it.&lt;br /&gt;&lt;br /&gt;Microsoft is also trying to redefine OOP and N-TIER standards by totally taking the focus off reuse and creating a cluster-f&amp;amp;*k in the UI layer - yes this includes WPF / XAML! Moreover Microsoft is spinning OS api wrappers as a framework and VS as being object oriented - then they goes as far as treating data like objects which has huge draw backs besides the bloat in the dataset object. In my opinion data should be treated as data but yet a UI control, which should be subclassed can not be in the class browser and requires jumping through hoops to code these classes out from scratch in c#!&lt;br /&gt;&lt;br /&gt;Finally VFP has a great data centric language engine that should be part of Visual Studio which Microsoft owns the source to but they are too freaking arrogant to implement it, so instead we have 5 different miserable data access strategies in Visual Studio and we simply pick which one sucks less to implement in the application based on the requirements. Despite what you hear and read all of them have limitations in the middle tier that requires various ass backward workarounds and helper objects.&lt;br /&gt;&lt;br /&gt;Look VS has a clear niche it is enterprise application development I will not aruge that, as a matter of fact that is exactly the technology I would use for enterprised based applications even with it's high suck factor! VS/.BLOAT are more productive to use then C++ to obtain certain functionality which exceed the capabilities of VB/VFP. However this is more the exception then the rule. For Microsoft to kill off VB/VFP and expect us to shoehorn VS and .Bloat in the small medium size business market is bullshit it doesn't fit!&lt;br /&gt;&lt;br /&gt;This is why this blog exists and I waste my time with my friend, Soma!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;Some other random thoughts &lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;1) I want to give Soma credit, as least he posts my ramblings on his blog that is more then I will say for Scott Gu!&lt;br /&gt;&lt;br /&gt;2) I also made the point on Soma's blog why wasn't WPF used in windows 7? Needless to say I'm not the only one raising this issue, despite what Sam would like for you to believe. Here is the link ... &lt;a href="http://blogs.zdnet.com/carroll/?p=1890"&gt;http://blogs.zdnet.com/carroll/?p=1890&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;FINALLY: The results and Foxpro code in detail&lt;/em&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;VFP Lines Of Code:&lt;br /&gt;Form Init: 10 (Most of this code just sets properities which could have been done using the property sheet)&lt;br /&gt;Button Click Code: 5&lt;br /&gt;Middle Tier Code To Populate A Cursor: 4&lt;br /&gt;Middle Tier Code To Generate an Excel File from a FoxPro Cursor: 7&lt;br /&gt;&lt;br /&gt;Note: If you set the properites using the designer instead of coding it out, the amount of code required for this application is more then cut in half.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Total lines of code I had to write: 26&lt;br /&gt;Time to build the application: 8 minutes&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Below are the screen shots and code to evidence I actually did write it.&lt;br /&gt;&lt;br /&gt;Using the class brower in Visual FoxPro, which works by the way, I exported the form and class code. The VFP class browser can also sub-class UI controls try that in Visual Studio!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5nQAwrxvU4/SZo4X8zk39I/AAAAAAAAAF8/2LdyHmT6zo8/s1600-h/form.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5303613495292780498" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 246px" alt="" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/SZo4X8zk39I/AAAAAAAAAF8/2LdyHmT6zo8/s400/form.JPG" border="0" /&gt;&lt;/a&gt; &lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/SZo5UfuXZcI/AAAAAAAAAGE/zkX43ZFzXRQ/s1600-h/excel.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5303614535458317762" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 400px; CURSOR: hand; HEIGHT: 118px" alt="" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/SZo5UfuXZcI/AAAAAAAAAGE/zkX43ZFzXRQ/s400/excel.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**************************************************&lt;br /&gt;*-- Form: form1 (d:\sam\sample.scx)&lt;br /&gt;*-- ParentClass: form&lt;br /&gt;*-- BaseClass: form&lt;br /&gt;*-- Time Stamp: 02/16/09 10:46:00 PM&lt;br /&gt;*&lt;br /&gt;&lt;br /&gt;* NOTE: THIS SECTION OF CODE VFP AUTO GENERATED FROM THE FORM DESIGNER&lt;br /&gt;&lt;br /&gt;DEFINE CLASS form1 AS form&lt;br /&gt;&lt;br /&gt;Top = 76&lt;br /&gt;Left = 252&lt;br /&gt;Height = 393&lt;br /&gt;Width = 691&lt;br /&gt;DoCreate = .T.&lt;br /&gt;Caption = "Form1"&lt;br /&gt;odatalayer = ""&lt;br /&gt;cfilename = ""&lt;br /&gt;Name = "Form1"&lt;br /&gt;&lt;br /&gt;ADD OBJECT grid1 AS grid WITH ;&lt;br /&gt;Height = 336, ;&lt;br /&gt;Left = 0, ;&lt;br /&gt;Top = 29, ;&lt;br /&gt;Width = 696, ;&lt;br /&gt;Name = "Grid1"&lt;br /&gt;&lt;br /&gt;ADD OBJECT command1 AS commandbutton WITH ;&lt;br /&gt;Top = 365, ;&lt;br /&gt;Left = 312, ;&lt;br /&gt;Height = 27, ;&lt;br /&gt;Width = 127, ;&lt;br /&gt;Caption = "Command1", ;&lt;br /&gt;Name = "Command1"&lt;br /&gt;&lt;br /&gt;ADD OBJECT command2 AS commandbutton WITH ;&lt;br /&gt;Top = 365, ;&lt;br /&gt;Left = 438, ;&lt;br /&gt;Height = 27, ;&lt;br /&gt;Width = 127, ;&lt;br /&gt;Caption = "Command2", ;&lt;br /&gt;Name = "Command2"&lt;br /&gt;&lt;br /&gt;ADD OBJECT command3 AS commandbutton WITH ;&lt;br /&gt;Top = 365, ;&lt;br /&gt;Left = 564, ;&lt;br /&gt;Height = 27, ;&lt;br /&gt;Width = 127, ;&lt;br /&gt;Caption = "Command3", ;&lt;br /&gt;Name = "Command3"&lt;br /&gt;&lt;br /&gt;ADD OBJECT label1 AS label WITH ;&lt;br /&gt;Alignment = 1, ;&lt;br /&gt;Caption = "Label1", ;&lt;br /&gt;Height = 17, ;&lt;br /&gt;Left = 8, ;&lt;br /&gt;Top = 7, ;&lt;br /&gt;Width = 121, ;&lt;br /&gt;Name = "Label1"&lt;br /&gt;&lt;br /&gt;ADD OBJECT text1 AS textbox WITH ;&lt;br /&gt;Height = 23, ;&lt;br /&gt;Left = 137, ;&lt;br /&gt;Top = 3, ;&lt;br /&gt;Width = 551, ;&lt;br /&gt;Name = "Text1"&lt;br /&gt;&lt;br /&gt;* END AUTO GENERATED VFP CODE&lt;br /&gt;&lt;br /&gt;PROCEDURE Init&lt;br /&gt;* Note I added two properties to the form cFileName and oDataLayer using the property manager&lt;br /&gt;* Reference to tell VFP where the class library can be found&lt;br /&gt;SET CLASSLIB TO datalayer.vcx&lt;br /&gt;* Get rid of the word NULL in the grid&lt;br /&gt;SET NULLDISPLAY TO ""&lt;br /&gt;* Set a caption on the form&lt;br /&gt;THISFORM.Caption = "VFP Example"&lt;br /&gt;* Set the label caption for the filename to save and bind the textbox to the property&lt;br /&gt;* Note this could have been set using the property sheet&lt;br /&gt;THISFORM.Label1.Caption = "Selected Filename:"&lt;br /&gt;THISFORM.Text1.ControlSource = "THISFORM.cFileName"&lt;br /&gt;THISFORM.Text1.Alignment = 0 &amp;amp;&amp;amp; Right Align&lt;br /&gt;&lt;br /&gt;* Set the captions on the command buttons&lt;br /&gt;* Note: This could have been done in the property sheet&lt;br /&gt;* I split these into seperate buttons for the purpose of code examples&lt;br /&gt;THISFORM.Command1.Caption = "Get Filename"&lt;br /&gt;THISFORM.Command2.Caption = "Populate Grid"&lt;br /&gt;THISFORM.Command3.Caption = "Export Grid"&lt;br /&gt;* Get a reference to the middle tier SQL data layer&lt;br /&gt;* Note: The class could have been dropped on the form&lt;br /&gt;THISFORM.oDataLayer = CREATEOBJECT("cusSqlData")&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;PROCEDURE command1.Click&lt;br /&gt;* Use the built in VFP GetFile dialogue box&lt;br /&gt;THISFORM.cFileName = GETFILE("XLS")&lt;br /&gt;* Refresh the textbox&lt;br /&gt;THISFORM.Text1.Refresh()&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;PROCEDURE command2.Click&lt;br /&gt;* Get a cursor from the adventurework person.contacts table for security I did not display the connection string&lt;br /&gt;THISFORM.oDataLayer.PopulateCursor("Contacts", "MyConnectionString", "Select * from person.contact")&lt;br /&gt;* Bind the dataset to the grid&lt;br /&gt;THISFORM.Grid1.RecordSource = "Contacts"&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;PROCEDURE command3.Click&lt;br /&gt;* Export the sql contacts table to excel&lt;br /&gt;THISFORM.oDataLayer.ExportCursor("Contacts", THISFORM.cFileName)&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;ENDDEFINE&lt;br /&gt;*&lt;br /&gt;*-- EndDefine: form1&lt;br /&gt;*************************************************&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;**************************************************&lt;br /&gt;*-- Class Library: d:\sam\datalayer.vcx&lt;br /&gt;**************************************************&lt;br /&gt;&lt;br /&gt;**************************************************&lt;br /&gt;*-- Class: cussqldata (d:\sam\datalayer.vcx)&lt;br /&gt;*-- ParentClass: custom&lt;br /&gt;*-- BaseClass: custom&lt;br /&gt;*-- Time Stamp: 02/16/09 10:32:12 PM&lt;br /&gt;*&lt;br /&gt;DEFINE CLASS cussqldata AS custom&lt;br /&gt;&lt;br /&gt;Name = "cussqldata"&lt;br /&gt;&lt;br /&gt;PROCEDURE populatecursor&lt;br /&gt;* tcCursorName name of the dataset to return&lt;br /&gt;* tcConnString name of the connection string to use&lt;br /&gt;* tcSelectStatement to execute against the sql database&lt;br /&gt;LPARAMETERS tcCursorName, tcConnString, tcSelectStatement&lt;br /&gt;* lnHandle holds a connection to sql server&lt;br /&gt;LOCAL lnHandle&lt;br /&gt;* Connect to sql&lt;br /&gt;STORE SQLSTRINGCONNECT(tcConnString) TO lnHandle&lt;br /&gt;* Create a dataset&lt;br /&gt;SQLEXEC(lnHandle, tcSelectStatement, tcCursorname)&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;PROCEDURE exportcursor&lt;br /&gt;* tcData name of the cursor to export&lt;br /&gt;* tcFileName name of the excel file to create&lt;br /&gt;LPARAMETERS tcDataSet, tcFileName&lt;br /&gt;* This code is not needed for this example but&lt;br /&gt;* it is a good practice when changing workareas to save off the current one&lt;br /&gt;LOCAL lnSelect&lt;br /&gt;lnSelect = SELECT()&lt;br /&gt;* Create the excel file&lt;br /&gt;SELECT (tcDataSet)&lt;br /&gt;COPY TO (tcFileName) TYPE XLS&lt;br /&gt;* Return to the original workarea&lt;br /&gt;SELECT (lnSelect)&lt;br /&gt;RETURN .T.&lt;br /&gt;ENDPROC&lt;br /&gt;&lt;br /&gt;ENDDEFINE&lt;br /&gt;*&lt;br /&gt;*-- EndDefine: cussqldata&lt;br /&gt;**************************************************&lt;br /&gt;&lt;br /&gt;Until next time - Develop at bloat speed!&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-9058546988836655872?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/9058546988836655872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=9058546988836655872' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/9058546988836655872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/9058546988836655872'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/02/end-of-mark-on-somas-blog-dont-count-on.html' title='Source Code Doesn&apos;t Lie'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_x5nQAwrxvU4/SZo4X8zk39I/AAAAAAAAAF8/2LdyHmT6zo8/s72-c/form.JPG' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-759646459868835978</id><published>2009-02-14T21:01:00.000-08:00</published><updated>2009-02-14T21:18:14.481-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='Window Presentation foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Windows 7: Vista Renamed!</title><content type='html'>Sorry I haven’t been around much as I’m sure my friends Scott Gu and Soma missed my blog entries but I spent the last month on site with a client from Louisville Ky, fixing yet another Visual Studio application abortion written by some over zealous Microsoft technology cheerleader.&lt;br /&gt;&lt;br /&gt;While onsite one of the things the client asked was if the VS application would run on Windows 7. Given I prefer to wait until service pack 2 is released before using a Microsoft product, vista proved 2 service packs may not even be enough. I honestly told the client it should but then again it is a Microsoft product so who knows.&lt;br /&gt;&lt;br /&gt;So one of their helpdesk people and I found a XP machine and decided to try it out. It didn’t take long at all to have my first WTF moment, apparently Windows 7 does not have an XP upgrade path. Therefore we ended up reformatting the machine which is probably a good idea anyway but still this is the lack of thought shows just how pathetic Microsoft is. What were they thinking everyone uses Vista?&lt;br /&gt;&lt;br /&gt;The Windows 7 operating system is not sexy and looks for the most part like Vista with poorly implemented stolen inspiration from KDE and Mac. Not surprising they took the worse part of office 2007 (the suck ribbon bar) and implemented it all over the place in the OS.  At least Microsoft’s lack of innovation reputation is still intact.&lt;br /&gt;&lt;br /&gt;While the Windows 7 OS seemed a bit snappier then Vista, then again what OS isn’t, it was still not as quick as XP. Of course there was a crash right after installation due to a video device driver problem (what a fing joke) and without hacking the registry, as least that I could find, you could not install unsigned device drivers.&lt;br /&gt;&lt;br /&gt;One thing I did find very interesting is the lack of WPF used in Windows 7. Given WPF has been out for more then 2 years you would think Microsoft’s own internal development would have used this great framework (yeah I even laughed at that one). It seems the only package Microsoft is releasing with a WPF UI is VS 2010 and even that will be some hybrid UI, according to my friend, Soma’s blog,&lt;br /&gt;&lt;br /&gt;At the end of the day we were able to get the application running on Windows 7 but my first impression is Windows 7 amounts to nothing more then Vista Service pack 7000 and far from anything to get overly excited about unfortunately. Windows 7 is simply just another attempt to fix the magnitude of issues in Vista.&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-759646459868835978?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/759646459868835978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=759646459868835978' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/759646459868835978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/759646459868835978'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/02/windows-7-r-rename-and-disquise.html' title='Windows 7: Vista Renamed!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-4508481555556442343</id><published>2009-01-06T21:10:00.000-08:00</published><updated>2009-01-06T21:59:51.931-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Christmas In Rome</title><content type='html'>My wife and I had the pleasure of spending Christmas in Rome this year. It was one of the trips that made you sad that the vacation was over. As I walked around Rome it is hard not to recognize the beauty of the arts, architecture and tradition. These magnificent buildings built centuries ago still inspire architects today. The great thinkers of that time were innovators and they did it without 3-d modeling software or hi tech tools as what they had was far more powerful, freedom, imagination and vision. They started with nothing and turned it into something amazing.&lt;br /&gt;&lt;br /&gt;When I finally got back to work, I flipped on my computer and the 15 minute wore out Windows boot process commenced. I sat there sipping my coffee watching the screen and I couldn’t help but think just how pathetic Microsoft and our society have become. These individuals can build great coliseums and Microsoft can’t even boot up a glorified calculator in less time then it takes me to finish my coffee. It is no wonder why Vista is a failure and furthermore Visual Studio is only alive due to spin, cheerleading and lack of a competing product. People are bored with the lack of thought, the bloat and being forced to use a product that is unstable and essentially they hate.&lt;br /&gt;&lt;br /&gt;In the technology age we have lost our ability to think, innovate and create. We/Microsoft have become slaves to a used up, wore out Windows paradigm. Worse yet we keep adding to the bloated paradigms with fluff, a cosmetic change here and there to the UI, bloating some framework with fad technologies that becomes non-existent in a year a two only to be replaced with another fad technology. Yet our corporate culture, arrogance and pride keeps us hostage to the same old failing models that we keep spinning, repackaging and marketing to give the impression they are far better then what they really are, right Scott Gu?&lt;br /&gt;&lt;br /&gt;Then in glaring ultimate stupidity Microsoft is trying to isolate all our applications into their failed wore out .BLOAT paradigm. Our innovation is trapped by the classes of BLOAT as we become too lazy or incompetent to innovate therefore we remained locked into the legacy windows API technology better known as the .NET framework. Moreover Microsoft would like nothing better to stifle innovation further by tightening up development environments so we are limited too what Microsoft’s think is best for us. VC++, Visual Basic, FoxPro and other golden age development tools (anything pre .bloat) had their own identity a feature missing in Visual Studio. Microsoft should be embarrassed by the rut they are in and even more disasterous they are doing their best to pull us in and why GREED - to protect the Windows legacy and monopoly.&lt;br /&gt;&lt;br /&gt;I guess the next great technology break through or operating system will occur as soon as a non-microsoft entity develops it, then Microsoft can steal their idea. The only bad part is it will become part of the BLACKHOLE of .BLOAT and suck as bad as what we currently have. Doesn't this sound like MVC and EDM?&lt;br /&gt;&lt;br /&gt;Could you imagine if the great architects of Rome owned a software company today? Perhaps Microsoft would be out of business, the "CHEAP" labor of India would no longer be a drag on the technology sector of the American economy and my computer would boot up before I finished my coffee.&lt;br /&gt;&lt;br /&gt;Wishing you a happy 2009!&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-4508481555556442343?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/4508481555556442343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=4508481555556442343' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/4508481555556442343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/4508481555556442343'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2009/01/new-years-in-rome.html' title='Christmas In Rome'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-6528326687533357395</id><published>2008-12-05T06:27:00.000-08:00</published><updated>2008-12-05T20:38:19.391-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>WTF Moment: Bill Gates on the economy</title><content type='html'>I want to preface this article with some comments by a manager at Microsoft Redmond on his visit to the Microsoft India Campuses.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/STlBZ9_-teI/AAAAAAAAAFE/mnRLfwcxHuI/s1600-h/india1.JPG"&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_x5nQAwrxvU4/STk_Z2enusI/AAAAAAAAAE8/ouk2Zsj98BQ/s1600-h/india3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5276318151794473666" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 166px" alt="" src="http://2.bp.blogspot.com/_x5nQAwrxvU4/STk_Z2enusI/AAAAAAAAAE8/ouk2Zsj98BQ/s320/india3.jpg" border="0" /&gt;&lt;/a&gt; "...&lt;span style="font-size:85%;"&gt;&lt;em&gt; huge concern is about quality of hires at IDC. I see pathetic hires walking into the product teams. The PUM/GM put a lot of pressure on HR and they end up fast tracking the hiring process. On top of that, you always have internal poaching which is very unhealthy. &lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;While quality of hiring at Microsoft India IDC may be bad, the new hires in MS SMSG India is even worse. The interview process does not even exist, exit interviews dont exist, people get into jobs that are way above their abilities or interest and we have Neelam Dhawan to inspire people to join Microsoft. " &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;So in other words when it comes to Americans, Microsoft has to grill it's new hires and there is not enough talent in the USA to fill their positions. Yet, where the labor is cheap (India) Microsoft doesn't care who they hire.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/STlywZhgx0I/AAAAAAAAAFU/BRNNRZyXM7Q/s1600-h/Microsoft-Tech-Support-1235.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5276374614251980610" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 149px; CURSOR: hand; HEIGHT: 141px" alt="" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/STlywZhgx0I/AAAAAAAAAFU/BRNNRZyXM7Q/s320/Microsoft-Tech-Support-1235.jpg" border="0" /&gt;&lt;/a&gt;He goes on to state:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;em&gt;"...meanwhile, a few exceptions aside, the quality of the work is abysmal. Components that came back to Redmond had to be completely rewritten. &lt;/em&gt;&lt;/span&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;...There is a serious lack of thought leadership in this group [India Complex]." Part of me thinks this is a cultural issue; generally India does not innovate; they follow instruction (and sometimes very badly; I've seen corrections get rolled back because they want to do things how they have always done when its clearly wrong); and if it's a cultural issue then it will not be solved by having people from that culture in charge; that simply reinforces the problem.&lt;/span&gt;&lt;/em&gt; "&lt;br /&gt;&lt;br /&gt;Isn’t this where much of the .NET framework and Visual Studio is developed? As a matter of fact I believe the individual in the pictures is the senior programmer working on Linq and Microsoft's data access strategy in Visual Studio 2010.&lt;br /&gt;&lt;br /&gt;You can read the full post here &lt;a href="http://minimsft.blogspot.com/2008/05/whats-up-with-microsoft-india.html"&gt;http://minimsft.blogspot.com/2008/05/whats-up-with-microsoft-india.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5276375509841714978" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; WIDTH: 135px; CURSOR: hand; HEIGHT: 148px" alt="" src="http://1.bp.blogspot.com/_x5nQAwrxvU4/STlzkh2vnyI/AAAAAAAAAFc/xrRPdGWz_tM/s320/soamtheindian.jpg" border="0" /&gt; There are numerous reasons why his comments are important and raises red flags, but for Bill Gates to speak on Wednesday to CNN’S Wolf Blitzer and whine about the America economy left me speechless, when Bill Gates and Microsoft is a huge part of the current economic problem. Bill Gates - Microsoft has outsourced thousands of jobs to India and China. These jobs include management, programming, and customer service positions. Furthermore, Bill Gates has continued to lobby congress to increase the amount of HB-1 visas companies are allowed, this action allows foreigners to come to the USA to fill American jobs. Soma is proud of the fact he was largely responsible for moving a portion of Microsoft’s research and development programming group from America to India.&lt;br /&gt;&lt;br /&gt;We need to also consider the ripple affect of outsourcing; Indians not American's built these large campuses. Bill talks about education, what about the city and state tax&lt;a href="http://1.bp.blogspot.com/_x5nQAwrxvU4/STlunIaB8lI/AAAAAAAAAFM/61jaOh5hjRw/s1600-h/soamtheindian.jpg"&gt;&lt;/a&gt; revenue that could have went to education that are lost because his new campuses are in India not the USA! The list just goes on and on and on ....&lt;br /&gt;&lt;br /&gt;Not only is Bill responsible for the exportation of thousands of jobs, by killing Visual Basic and Visual FoxPro Microsoft has literally crippled two development communities costing additional jobs. Given Visual Studio’s high cost of ownership, Microsoft is draining funds from small and medium size businesses, money that could have been used to hire employees instead these Medium and Small businesses are feeding Microsoft’s shareholders returns.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_x5nQAwrxvU4/STn_W8ZVd0I/AAAAAAAAAFk/7gkQwpvfxmg/s1600-h/bill.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5276529208075843394" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 188px; CURSOR: hand; HEIGHT: 187px" alt="" src="http://4.bp.blogspot.com/_x5nQAwrxvU4/STn_W8ZVd0I/AAAAAAAAAFk/7gkQwpvfxmg/s320/bill.jpg" border="0" /&gt;&lt;/a&gt;Bill Gates begging for a “TAX-PAYER” based economic stimulus package is absurd when his actions and other CEO'S like Micheal Dell caused this problem. Bill you want a solution I will give you one: stop outsourcing, close your 54 acres India based campus(s) and move the jobs back to America. Then Microsoft can bring back Visual Basic and FoxPro so small and medium size business can be given the correct cost effective based solution for the their business technology needs. Bill quit being a problem and start being part of the solution and do us all a favor stop your whinning about something you caused! Actions speak louder then words and your actions speak volumes.&lt;br /&gt;&lt;br /&gt;When you export a significant size of your workforce to where the “CHEAP LABOR” exists no one should question why America is in a recession. Is Bill really that stupid or does he simply think we are? The trickle down policy at Microsoft of spin and arrogance, apparently starts at the top.&lt;br /&gt;&lt;br /&gt;Bill you want help the American economy why dont start by looking in the mirror, analyze your business decisions and their impact on the American economy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;GOD Bless America!&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-6528326687533357395?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/6528326687533357395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=6528326687533357395' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6528326687533357395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6528326687533357395'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/12/wtf-moment-bill-gates-on-economy.html' title='WTF Moment: Bill Gates on the economy'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_x5nQAwrxvU4/STk_Z2enusI/AAAAAAAAAE8/ouk2Zsj98BQ/s72-c/india3.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-7934084592907305037</id><published>2008-11-24T09:31:00.000-08:00</published><updated>2008-11-25T07:42:18.805-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Visual Studio's IDE made transparent</title><content type='html'>Perhaps some day, in the not to distant future, I will retire. Then I may become a CIS professor so I have an arena to preach to young programmers about the evils of Visual Studio. I will make Visual Studio a case study in how “NOT” to develop software. After all Microsoft has given us so much material to work with from system analysis, coding practices to implementation we should find a good use for Visual Studio somehow since obviously a productive development environment is NOT one of them.&lt;br /&gt;&lt;br /&gt;One of the features of Visual Studio as told by Microsoft is the single IDE. The idea behind this is we have one interface or development environment which we can create different types of applications Mobile, Web and Windows using one of the languages Microsoft provides VB.NET, C#, C++. (As pathetic as it is, a true data centric language doesn’t exist in Visual Studio and it is only a matter of time before C++ is gone as well).&lt;br /&gt;&lt;br /&gt;On the surface a single IDE appears to be a great idea, but like most things Microsoft does it was screwed up along the way. Since Microsoft failed in developing a solid N-TIER framework for VS most of the business layer code really can not be shared in an “elegant” fashion across these applications. Furthermore the UI layer obviously can not be shared since Microsoft created separation between their API wrappers otherwise known as the .BLOAT FRAMEWORK. For example a webform textbox control is contained in a completely different namespace from the winform textbox control, personally I would fire the mental midget that designed that pattern. It would have made sense to have a single control namespace then based on the environment branch to the appropriate subclass for the actual implementation. If Microsoft would have used that bit of logic then .NET may start to resemble a "real" framework.&lt;br /&gt;&lt;br /&gt;So in actuality what Microsoft gave us in providing a single IDE is an over bloated IDE that hinders our productivity. More importantly this IDE is forcing all of our custom applications to be tied BY THE DEVELOPMENT TOOL to the .BLOAT framework which means they are tied to the Windows OS. My friends, that is the real purpose behind the IDE maintaining the Windows Monopoly. The IDE is providing no real development benefit only preceived benefit.&lt;br /&gt;&lt;br /&gt;If Microsoft really thought about this, there are 2 different solutions which would have harnessed the power of a single IDE.&lt;br /&gt;&lt;br /&gt;1) Create a “true” N-TIER framework that would have made our UI and business layers truly portable across the web, windows or mobile platform from a single set of source. Since Microsoft has never written a “true framework”, they are merely creating class wrappers over the existing OS API and are spinning this nonsense as the .NET/BLOAT framework, this will never happen.&lt;br /&gt;&lt;br /&gt;2) Store the basic UI information from the form designer as meta data along with the UI code, business layer code etc. Then at compile time give us the option to select the type of application we want to generate. Visual studio should generate the code and compile the application. While this is not the “best” option, it would have worked better then what we currently have since we could use the same source to generate a Web, Winform or Mobile app.&lt;br /&gt;&lt;br /&gt;The bottom line is having a single IDE and providing no benefit is a waste of time. Furthermore, for Microsoft, Soma and the boys to spend the resources to migrate the Visual Studio IDE to WPF for no apparent reason other then showcasing how much symbolic "bloat" i meant flash they can add to VS defies logic; given the amount of bugs in Visual Studio, lack of a data centric language (or any serious data access technology that works) and broken intellisense in C++.&lt;br /&gt;&lt;br /&gt;If Soma, GU and Microsoft are incapable or too incompentent, take your pick, to implement a single IDE across platforms and languages so it is useful for developers we would be better off with a single IDE for each compiler so the IDE bloat, for a language we are not even dealing with, is not getting in our way! If you give this some thought this is exactly what we had in the 6.0 days and it worked!&lt;br /&gt;&lt;br /&gt;I suppose in the world of Microsoft protecting their Windows Monopoly is all that matters. They rather hinder developers by destroying products and paradigms that worked instead of developing software development environments or an OS for that matter (remember Vista) that can stand on their own merit.&lt;br /&gt;&lt;br /&gt;Until next time&lt;br /&gt;Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-7934084592907305037?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/7934084592907305037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=7934084592907305037' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7934084592907305037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7934084592907305037'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/visual-studios-intergrated-ide.html' title='Visual Studio&apos;s IDE made transparent'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-5344715722783167905</id><published>2008-11-12T19:46:00.000-08:00</published><updated>2008-11-12T21:43:47.839-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Mark hits the Mark!</title><content type='html'>I was planning on giving you a technical rant about Visual Studio, however after an anonymouse comment left on my blog I went surfing and I found a couple of postings by respected Microsoft developers I wanted to share with you. Besides that, I thought this would be nice conclusion to my rants why Visual Studio is wrong from a business perspective.&lt;br /&gt;&lt;br /&gt;In Markus Eggerus's blog he discusses the benefits of VS however he couldn't help but a take a well deserved gab (more like an upper cut) at Visual Studio. The following excerpt is from his blog:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:arial;"&gt;".... A premium solution such as the Milos® Solution Platform will automate much of the data access for you, based on information in your data store, and will follow best practices to provide a more flexible system. Whether you choose a third party solution for the data access and business layers, or you intend to roll your own, you should plan on including these layers. &lt;span style="font-family:verdana;"&gt;&lt;strong&gt;The .NET environment is not nearly as flexible as VFP in many areas&lt;/strong&gt;,&lt;/span&gt; and you’ll run into trouble later if you don’t include these layers. ...."&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;If Microsoft had nailed data access with anyone of their 5 different "failed" data access paradigms why are data technologies like Milos even being mentioned? I tell you why because data access is nothing short of an abortion in Visual Studio and Microsoft is too arrogant to admit they are completely clueless when it comes to data and blinded by their own self righteousness to implement a paradigm that actually works, Visual FoxPro. Given Microsoft owns the VFP source code their logic defies reason.&lt;br /&gt;&lt;br /&gt;With regards to cost of ownership below is an except posted by a Visual FoxPro and Visual Studio MVP on his blog:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:verdana;"&gt;...Les Pinter has a nice strategy for selling VFP apps.He first shows to his audience, most likely managers and budget-responsible people, the whole myriad of classes and possibilities of VB.Net of C# or whatever they can come up with.He is driving them crazy with all the things you can do in .NET to a point where they ask him for a price to develop that must-have application XYZ.He gives them the price and the time to deploy the app and tells them there is an alternative.... and then says, "nahhh, you probably won't be interested, it will cost you only 25% of the price I just mentioned but it won't be interesting of you". Well, those budget-responsible people ARE interested then, and then he shows them his &lt;strong&gt;"special framework, developed in C++, AKA VFP"&lt;/strong&gt;.He drives their minds to a boiling point with another show-off from VFP and compares that with the things he just showed to his audience. &lt;strong&gt;And shows that it is indeed, remarkably quicker, and, what's more, cheaper!!&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Yes you read it correctly as quoted by a Microsoft Professional Developer, VFP is remarkably quicker and a VFP custom solution is 75% cheaper then a Visual Studio/.BLOAT solution !&lt;br /&gt;&lt;br /&gt;In closing here is an link to an older infomation week article ripping Vista apart. The interesting thing is Vista consumes a large portion of the .BLOAT framework. I find it ironic that Microsoft can't even make .BLOAT function as well as XP.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.informationweek.com/news/windows/showArticle.jhtml?articleID=204203975"&gt;http://www.informationweek.com/news/windows/showArticle.jhtml?articleID=204203975&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once again I'm right on the mark as usual.&lt;br /&gt;&lt;br /&gt;Until next time.&lt;br /&gt;&lt;br /&gt;Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-5344715722783167905?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/5344715722783167905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=5344715722783167905' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5344715722783167905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5344715722783167905'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/mark-hits-mark.html' title='Mark hits the Mark!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-6921451868342015201</id><published>2008-11-08T18:24:00.001-08:00</published><updated>2008-11-13T06:02:42.256-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Visual Studio Cheerleading Squad Exposed</title><content type='html'>&lt;p&gt;Over the past couple of years I have read countless blogs written by Visual Studio cheerleaders, after awhile a pattern is established that most cheerleaders fall into:&lt;br /&gt;&lt;br /&gt;1) The A-Team: For the most part, these people know what they are talking about from a programming standpoint. However, because they are tied financially to Microsoft by being an employee or consultant they are forced to carry the company line and spin the Visual Studio product the best they can.&lt;br /&gt;&lt;br /&gt;2) The Hour Billers: This category of cheerleaders is made up of consultants and consulting firms that advocate Visual Studio solutions. It is not wise for them to speak negatively about the development tools they use to construct their solutions. The increased time to build a product amounts to increased revenue since they bill by the hour so they view suck factor as a positive. &lt;/p&gt;&lt;p&gt;3) The Rookies: Developers that have only used Visual Studio and claim what a great tool it is make up this category. Their opinion is null and void given their exposure solely to Visual Studio. &lt;/p&gt;&lt;p&gt;4) India's programming population: Recruited and hired mainly by Soma, Self Proclaimed American Job Exporter. I believe there is a law in India where if you are convicted of speaking negatively about Dell, Microsoft, Soma or Visual Studio your punishment is death by stoning. I further believe honor killing is legal in the defense of the above stated entities. &lt;/p&gt;&lt;p&gt;5) The Radicals: This is the scariest group of them all. These individuals are simply "want-a-bees" that will do or say anything in an effort to make the "A-Team". Microsoft can tell them dog shit tastes good and they will eat it, ask for seconds, lick their fingers clean, and agree it is the best tasting thing they ever ate. Their defense of Microsoft and every Microsoft product can be compared to how islamic extremists defend islam and the koran. Wonder if Bill promised the radicals 75 virgins or, in their case, Bill probably only needed to provide a free copy of Vista Ultimate for their soul. After giving this a second more thought then it deserves, isn't the reality of the situation these people are even more pathetic then that and simply cheerlead for free? &lt;/p&gt;&lt;p&gt;To give you a look at what is coming up on DOT BLOAT. I’m going to start ripping Visual Studio apart from a technical perspective. I will have more material to work with then Bill Gates has dollars.&lt;br /&gt;&lt;br /&gt;Have a great weekend&lt;br /&gt;Mark&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-6921451868342015201?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/6921451868342015201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=6921451868342015201' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6921451868342015201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6921451868342015201'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/visual-studio-cheerleading-squad.html' title='Visual Studio Cheerleading Squad Exposed'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1787018113754726271</id><published>2008-11-06T12:05:00.000-08:00</published><updated>2008-11-07T06:14:39.083-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Visual Disaster</title><content type='html'>The decision to make the investment to switch development platforms, historically, occurred based on technological advancements that solved “real” (and not some perceived future) needs of our customers. Since the customer benefits exceeded transition cost, companies and developers decided willingly to change platforms.&lt;br /&gt;&lt;br /&gt;Over the past 30 years I went from assembler programming on PDP-11 to C, ADA, COBOL, C++, Revelation, Progress, FoxPro, Visual FoxPro, Visual Basic, SQL Server and Visual Studio Version 6.0. Each transition pales in comparison to short lived excitement of Visual Studio 2003 which has rapidly declined to pure and justifible hatred for Visual Studio 2008. I'm convinced this is the only development suite I use that gets worse instead of better with each release.&lt;br /&gt;&lt;br /&gt;With Visual Studio the justification for transitioning to the new BLOATED world of .NET simply is not there for the majority of customers, despite Microsoft’s spin and marketing campaign code named smoke and mirrors. This fact is evidenced by the seer volumes of names on the failed VB and VFP petitions drives. It became apparent, that both the Visual Basic and FoxPro communities were not going to embrace BLOATWARE willingly like Microsoft has hoped. In a self-serving arrogant revenue driven fashion, Microsoft issued an end of life for the Visual Basic and Visual FoxPro product lines in order to get out from beneath the royalty free distribution model of VB/VFP, gain acceptance of Visual Studio and couple new custom applications to the Windows operating systems via dot BLOAT. (See prior weblog entry on this fact)&lt;br /&gt;&lt;br /&gt;When developers didn’t get on the Visual Studio bandwagon, Microsoft started releasing updated technologies, namely Office, SQL Server 2008 and to a lesser extent Vista (does anyone actually use Vista?) that aren’t 100% backward compatible with Visual Basic and Visual FoxPro thereby further forcing the transition to occur.&lt;br /&gt;&lt;br /&gt;Left with no other viable Microsoft alternatives developers are forced into implementing this BLOATED monstrosity called Visual Studio for small and medium size business applications where it does not fit and only as a last resort. The true niche for Visual Studio is large scale enterprise based applications, not the VB/VFP void Microsoft created ! I'm so right on this point as usual, Soma recently blogged about Microsoft giving away Visual Studio to small businesses. Not surprising Soma's spin is, Microsoft Monopoly INC. helping the "little guy" when the reality is no one in this niche is buying VS therefore let's give it away since we can't sell it and maybe someone just might use it.&lt;br /&gt;&lt;br /&gt;The bottom line is honest developers want the right solution for our customers. Visual FoxPro and Visual Basic with some ASP filled this small and medium size business niche nicely. Visual Studio for the foreseeable future definitely is not the right development tool for this market, it is no where close to having the RAD capabilities, ease of use and the low cost of ownership of Visual Basic and Visual FoxPro.&lt;br /&gt;&lt;br /&gt;Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1787018113754726271?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1787018113754726271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1787018113754726271' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1787018113754726271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1787018113754726271'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/visual-disaster.html' title='Visual Disaster'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1453038252498242942</id><published>2008-11-03T13:50:00.001-08:00</published><updated>2008-11-06T12:24:16.715-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>WTF Moment: Cloud Computing</title><content type='html'>&lt;p&gt;Has anyone heard of Microsoft's cloud computing initiative? And if so did it set off the same alarms that occurs when a 747 Air Jordian Jet Liner accidently flies into the White House Air Space? If it didn't let me break down for you what is happening here.&lt;br /&gt;&lt;br /&gt;Microsoft first killed off Visual Basic which opened the door for them to kill off Visual FoxPro. This was not done because these were bad products (actually both are far better then Visual Studio/.BLOAT) nor because the communities were dying. This was totally a self serving Microsoft base decision .After completing this objective, Microsoft introduces cloud computing which basically means the great folks in Seattle want to house YOUR data for you on their servers.&lt;br /&gt;&lt;br /&gt;Now you might be saying, Mark what is so bad about this. Well first off I predict the cost of SQL Server is going to SKY Rocket over the next 5 years to a point it will no longer be economically feasible for you to own the SQL Server software licenses and we will be forced into the cloud programming paradigm. If that does not work, Microsoft will simply stop offering SQL Server licenses exactly like they did with VB and VFP as that precedent has been set. Thereby Microsoft can implement it's subscription based pricing model to access "YOUR" data.&lt;/p&gt;&lt;p&gt;Then Microsoft is going to develop an airtight EULA for CLOUD SQL Server which basically will permit Microsoft to own YOUR data. The power this will give Microsoft is enormous and Microsoft will then have the leverage it needs to compete against Google. For example Microsoft will be able to access this data for targeted browser search engine advertising or mandate this data can only be accessed by Microsoft based browsers.&lt;br /&gt;&lt;br /&gt;Microsoft did not become a Monopoly due to their innovation, their development group of programmers are not that good just look at VISTA not even Microsoft's marketing team could save that software disaster. Microsoft does excel however in business as that is what got them to where there are at today and don't be fooled this is strictly a business decision not a programming one.&lt;br /&gt;&lt;br /&gt;Unless developer's completely rebuke this idea, which given the level of the cheerleading that is currently occurring, I doubt that will happen. The "CLOUD" that is coming is Microsoft's perfect storm which will unleash yet another Microsoft attempt at a monopoly and raise share holders divdiends in the process.&lt;br /&gt;&lt;br /&gt;Till Next Time&lt;br /&gt;&lt;br /&gt;.Mark&lt;br /&gt;&lt;/p&gt;&lt;p&gt;By The Way... A developer named Mr. Robert Wray has taken the time to post a blog entry about my blog. Which is kind of cool unforunately he took what I had to say out of context and obviously moderating comments. Therefore just to set the record straight below is my comment to Mr. Wray.&lt;/p&gt;&lt;p&gt;Hey Robert,&lt;/p&gt;&lt;p&gt;One question for you have you ever used Visual Basic or Visual FoxPro? My thought is you haven't otherwise you would have been aware VB and ASP can consume VFP middle tier DDL files therefore providing a far more robust N-TIER implementation with complete seperation between the UI, Middle Tier Code and either SQL Server or FoxPro Database files. We can also go the other way create a reusable activex control in VB and consume it in the VFP UI layer.&lt;br /&gt;&lt;br /&gt;Something else really cool that VFP has and VS doesn't is a true data centric language with native data access which means it is doesn't suck at building middle tier components that follows N-TEIR standards which not even linq can do right. The only disadvantage is DLL hell syndrome which is more an operating system issue addressed completely with installshield.&lt;/p&gt;&lt;p&gt;The current production release of VS is nowhere near able to pull N-TIER off as cleanly as the above stated implementation maybe when/if MVC is ever released that might be close have to wait and see as currently MVC is in a state of disarray.&lt;/p&gt;&lt;p&gt;Moveover if my assumption is correct how do you know VS is better then VB or VFP? Curious if you read about it on GU'S blog and just following blind faith ?&lt;br /&gt;&lt;br /&gt;With all due respect, I alway mention VB with VFP together when talking N-TIER design patterns. The rest of your post about my older is blog is equally inaccurate and probably will make little sense unless you thoroughly understand the C++ or VFP inheritance models therefore you were reduced to grasping at toolbox icons as being my issues therefore missing my entire point. Perhaps in the future do your research before flaming other developers and get your facts straight.&lt;/p&gt;&lt;p&gt;Best Regards,&lt;br /&gt;Mark Gordon&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1453038252498242942?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1453038252498242942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1453038252498242942' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1453038252498242942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1453038252498242942'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/wtf-moment-cloud-computing.html' title='WTF Moment: Cloud Computing'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-6136594366863397655</id><published>2008-11-02T22:47:00.000-08:00</published><updated>2008-11-04T00:25:10.563-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Scott Gu'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Somasegar'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Septic Tank Trucks VS The Benz</title><content type='html'>I wonder don't most people buy cars that are the most reliable, get the best gas milage and have the most features they need for their dollar if so why doesn't that thought pattern carry over into the development tool arena? To drive the point home: Microsoft gives the development community a septic tank truck (visual studio) full of shit (.net) that stinks, to drive from point a to point b and people are happy they are not walking, having never driven a Benz (vb or vfp). Then ironically these septic tank people (also known as Visual Studio cheerleaders) try to convince their neighbors (people like me that owns a benz), that a benz is really a bad idea and I need to drive a septic tank truck! After all a septic tank truck forces you to manually shift gears, trades in the bose stereo for a shit hauler tank on the back, gets rid of the unneeded leather interior for a vinyl bench seat while slows you down in getting from point a to point b since the shit hauler doesn't have the performance of the Benz. To top it all off, the shit hauler costs more then the Benz to buy and operate. The shit haulers rationalize this decision in some cases by stating: by driving a shit hauler truck we can truely enjoy each mile we spend in the shit hauler since it doesn't go as fast as the Benz (for those of you a bit slow this translates to enjoy every extra line of code we have to write in Visual Studio that we didn't have to write in VB and VFP). Don't they get it the shit hauler only works in the septic tank industry not for driving to chuch with the family on Sunday! Simply because the septic tank truck can get you to church Microsoft says drive it and the cheerleading staff agrees with them of course. That is exactly what is occuring in the VS community and the direction Microsoft is taking with VS and DOT BLOAT.&lt;br /&gt;&lt;br /&gt;Visual Studio is not the - end all be all - that the cheerleading squad would like for us to believe. Granted VS is sorta new (better said, Microsoft finally has a release with enough work arounds in place to make it sorta stable enough to use) and excitement exists surrounding the product. However if you look at this from a customer and development standpoint WHO CARES if it is new or not! The important question is where is the benefit in all the shit and is the the right tool for the job.&lt;br /&gt;&lt;br /&gt;What my clients want, is to use software to get their work done in the least intrusive manner, most of them are clueless what technology is behind the UI. If you are writing a straight forward desktop application with CRUD operations and reporting why would Visual Studio be the right choice over Visual Basic or Visual FoxPro? My friends Visual Studio isn't the right choice, ANYONE who tells you different is bullshitting you. This notion that visual studio is better for small and medium size businesses, in most cases, amount to nothing more then marketing smoke and mirrors!&lt;br /&gt;&lt;br /&gt;Here are the basic facts:&lt;br /&gt;&lt;br /&gt;1) &lt;strong&gt;Cost Of Ownership:&lt;/strong&gt; Visual Basic and Visual FoxPro both could be distributed royality free and the hardware necessary to run these applications is less then a Visual Studio/SQL Server solution so a lower cost of ownership exists with a VB/VFP based solution.&lt;br /&gt;&lt;br /&gt;2) &lt;strong&gt;Data Access:&lt;/strong&gt; Visual FoxPro can access data natively and was a great choice for developing middle tier components. Because of VFP's robust data centric language, it blows away any Microsoft data access technology out there including LINQ. Visual Studio provide zero benefit and 100% overhead in this category. There is not a single VS developer that can produce a middle tier component in fewer lines of code then you could with VFP. If you think can post the code so I can mock it and prove you wrong.&lt;br /&gt;&lt;br /&gt;3) &lt;strong&gt;N-TIER Support: &lt;/strong&gt;Visual Basic and Visual FoxPro when used in conjuction with each other had complete seperation between tiers for maximum code reuse. This is something that Visual Studio still can not do well. Even native VFP could pull this trick off. Webforms with code behind definately is not N-TIER. Linq should be an embarassment to Microsoft in that the data context violates N-TIER standards and a helper object is needed to work around linq's short comings in the middle tier. More over Linq to SQL from a purist standpoint is not N-TIER, basically linq code may reside in a middle tier however Linq is actually generating SQL scripts similar to stored procedures that is being excuted on the SQL Server machine. A puriest would consider Linq to SQL a hybrid-3 tier solution at best with most heavy lifting occuring on the SQL box not the middle N-tier. In VFP the middle tier components, when written correctly, could truely process on middle tier hardware and scaled better then VS/Linq.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4) The Exorcist Factor:&lt;/strong&gt; In Visual Studio, Microsoft decided to take data and "posses" it, by infecting data with this this notion it can be treated like an object. The outcome looks very similar to Linda Blair in the exorcist after being possessed. The overhead related to the dataset object is enormous and almost laughable when you open a dataset in the object browser and the sql code linq generates is ridiculous. It is no wonder why numerous people and MVPS are reporting LINQ is not consistently returning correct results sets, I personally have not seen this occur. In general Microsoft's data access patterns are flawed and the sooner Microsoft realizes it the better. Microsoft has 6 or so data access technologies and each one contains varying degrees of suck!&lt;br /&gt;&lt;br /&gt;As a sidebar: Microsoft here is a secret, VFP treated data like it should be treated as data and something amazing occured that idea worked well. The VFP community didn't need 6 different failed data access paradigms! I will let you in on something else, Microsoft you own the FoxPro source code just duplicate it in VS, that paradigm works well (much of the internals of sql server indexing is based on foxpro's rushmore technology) . You guys, in general, excel at stealing other people ideas, windows is a perfect example then with Vista you went off on your own and got in some trouble. Look you only SUCK at inventing new ideas therefore quit trying to reinvent the wheel when it comes to data and harness your strengths. Afterall that is the same direction you are taking with MVC isn't it? You waited until ruby refined MVC and you are duplicating the concept so I'm lost why are you not following the same paradigm with FoxPro and data access?&lt;br /&gt;&lt;br /&gt;5) &lt;strong&gt;Learning Curve: &lt;/strong&gt;Why do people insist on having to learn 70k classes and multiple frameworks when tools like VB and VFP accomplished the same task with 200 or 300 commands and functions. This logic defies reason.&lt;br /&gt;&lt;br /&gt;Look, I'll give you the inside scoop, the well known cheerleaders are PAID to hype Visual Studio and/or work for Microsoft, that is their JOB, they are septic tank truck salesman! Their opinions are jaded at best, they are not looking out for your best interest and care even less about your customers. Their only concern is not to bite the hand that feeds them. Their goal is to create an artificial need then lead you to believe Visual Studio fills this need. I'm not knocking GU and the rest of the cheerleading squad for that either, we all need to make a living.&lt;br /&gt;&lt;br /&gt;I do have a serious problem with the developers who do not work for or get paid by microsoft and still hype this nonsense. Do these people really enjoy tools that cause you more work and force you to use half implemented unstable frameworks every 6 months to keep up with the learning curve? The question I have is what the hell is wrong with you? Don't you get it, this paradigm is costing you MONEY!&lt;br /&gt;&lt;br /&gt;As soon as more developers wake up, quit sucking up to Microsoft, stop listening to these paid spokespeople and get out of the septic tank trucks the better off all developers will be. When is enough going to be enough. Don't we deserve solutions that actually fit our needs instead of following paradigms geared towards shareholder revenues.&lt;br /&gt;&lt;br /&gt;Wake up all, stand united with me, park your shit haulers and tell Microsoft we want to drive in a Benz again!&lt;br /&gt;&lt;br /&gt;Thats all for now!&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-6136594366863397655?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/6136594366863397655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=6136594366863397655' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6136594366863397655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/6136594366863397655'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/11/microsoft-cheerleaders.html' title='Septic Tank Trucks VS The Benz'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-5726954772559515439</id><published>2008-03-12T05:13:00.000-07:00</published><updated>2010-11-13T08:40:07.977-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Visual Studio Parody</title><content type='html'>I received an email yesterday that contained the following parody. Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="float:right; padding-left;10px"&gt;&lt;br /&gt;&lt;object width="480" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/3gwqEneBKUs?fs=1&amp;amp;hl=en_US"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/3gwqEneBKUs?fs=1&amp;amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;“Yes I Can” by Bill.I.M.Rich - Visual Studio Parody to the song - No We Can’t&lt;br /&gt;&lt;br /&gt;Intro Guitar: A company inspires programmers&lt;br /&gt;with just 3 words Visual Studio Net&lt;br /&gt;&lt;br /&gt;Bill Gates: The work that we face in our migrations are great.&lt;br /&gt;Adapting dot net, the terrible sacrifices it entails&lt;br /&gt;The promise of a better application, is not always clear.&lt;br /&gt;There are going to be more bugs, I’m sorry to tell you,&lt;br /&gt;There's going to be more bugs&lt;br /&gt;&lt;br /&gt;Developers: What?&lt;br /&gt;&lt;br /&gt;Bill Gates: We are going to have a paradigm change&lt;br /&gt;And my friends, it’s going to be tough and we are going to have a lot do.&lt;br /&gt;&lt;br /&gt;Bill Gates: That ole beach boys song&lt;br /&gt;Bomb VB, Bomb Bomb Bomb Bomb Bomb VB&lt;br /&gt;&lt;br /&gt;Bill Gates: (Laughing)&lt;br /&gt;&lt;br /&gt;Developers: Bomb VB?&lt;br /&gt;&lt;br /&gt;Bill Gates: I’m still convinced, VB means chaos&lt;br /&gt;And if you think that things are bad now, without .net&lt;br /&gt;&lt;br /&gt;Signing: Your f@#cked&lt;br /&gt;&lt;br /&gt;Bill Gates: You ain’t seen nothing yet,&lt;br /&gt;Bbbaaabbbyyy,&lt;br /&gt;You aint seen nothing yet.&lt;br /&gt;&lt;br /&gt;Reporter: Do you still think Visual Studio was a good idea&lt;br /&gt;and worth the high cost to your customers.&lt;br /&gt;&lt;br /&gt;Bill Gates: It was a good idea&lt;br /&gt;&lt;br /&gt;Developers: No!&lt;br /&gt;&lt;br /&gt;Reporter: Microsoft is talking about MVC, EDM&lt;br /&gt;and maybe 50 different frameworks.&lt;br /&gt;&lt;br /&gt;Bill Gates: Maybe 100&lt;br /&gt;&lt;br /&gt;Developers: Say What&lt;br /&gt;&lt;br /&gt;Bill Gates: Maybe 100&lt;br /&gt;&lt;br /&gt;Developers: Frameworks?&lt;br /&gt;&lt;br /&gt;Bill Gates: That’s fine with me&lt;br /&gt;&lt;br /&gt;Microsoft Cheerleader: Visual Studio&lt;br /&gt;&lt;br /&gt;Bill Gates: That’s fine with me&lt;br /&gt;&lt;br /&gt;Microsoft Cheerleader: 100 Frameworks?&lt;br /&gt;&lt;br /&gt;Bill Gates: I don’t think developers are concerned&lt;br /&gt;If we have 100 frameworks or 1000 frameworks or 10,000 frameworks&lt;br /&gt;&lt;br /&gt;10,000 frameworks&lt;br /&gt;10,000 frameworks&lt;br /&gt;10,000 frameworks&lt;br /&gt;&lt;br /&gt;Visual Studio 2010&lt;br /&gt;10,000 .NET Frameworks, 1 Billion Classes&lt;br /&gt;Good Luck with that one.&lt;br /&gt;&lt;br /&gt;Visual Studio 2008&lt;br /&gt;Like RAD, But Bloated. ['But Bloated' Edit By .Mark seemed more fitting]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-5726954772559515439?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/5726954772559515439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=5726954772559515439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5726954772559515439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5726954772559515439'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/03/visual-studio-hit.html' title='Visual Studio Parody'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-5852782228183406061</id><published>2008-02-26T19:17:00.000-08:00</published><updated>2008-02-27T17:27:24.339-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Visual Studio 'NOT N-TIER READY'</title><content type='html'>While surfing my usual list of blogs I found an entry that I almost fell out of seat, not because of the content was great but due to the fact an honest Microsoft Manager MAY exist. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Milind&lt;/span&gt;&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Lele&lt;/span&gt;&lt;/span&gt; a VS data manager wrote&lt;em&gt; "... code we generate in Visual Studio 2005 is not N-Tier ready...."&lt;/em&gt;. Isn't that what I been stating since I started my blog. Perhaps he reads &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;DOTBLOAT&lt;/span&gt;&lt;/span&gt;? I appreciate &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Lele's&lt;/span&gt;&lt;/span&gt; honesty perhaps other Microsoft Managers and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;VPS&lt;/span&gt;&lt;/span&gt; should stop the spin and take a lesson from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Lele&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Microsoft today was fined 1.3 billion dollars by the EU, this judgement should erase any doubt regarding Microsoft's business practices. Not even Microsoft's dream team of attorneys could save Microsoft from the brunt of the EU fine.&lt;br /&gt;&lt;br /&gt;There is nothing wrong with Microsoft being a Monopoly as long as they &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;fulfill&lt;/span&gt; their ethical responsibilities, which is exactly the problem with Microsoft. The means they are employing to keep their &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;dominate&lt;/span&gt; status is immoral, unethical and in my opinion illegal. Microsoft treatment of the VB and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VFP&lt;/span&gt;&lt;/span&gt; community is a perfect example, they killed these languages so we will use Visual Studio and .BLOAT. Microsoft's actions are like playing Marco Polo with Helen Keller then bragging they won. Isn't it long past due for the US Department of Justice to get involved as well?&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-5852782228183406061?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/5852782228183406061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=5852782228183406061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5852782228183406061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/5852782228183406061'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/02/visual-studio-not-n-tier-ready.html' title='Visual Studio &apos;NOT N-TIER READY&apos;'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-1616612080551248668</id><published>2008-02-23T10:12:00.001-08:00</published><updated>2008-02-24T19:28:35.819-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>Microsoft's New Legal Troubles</title><content type='html'>&lt;strong&gt;Class Action Lawsuit Gets the Go Ahead&lt;/strong&gt;&lt;br /&gt;According to CNN a Class action suit against Microsoft gets greenlight. Suit says labeling of some PCs as "Windows Vista Capable" was misleading because many could not run all of Vista's features.&lt;br /&gt;&lt;br /&gt;The same could be said about Microsoft's Claim Visual Studio is a Rapid Application Development. Anyone know a good class action attorney?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;EU Doing It's Job&lt;/strong&gt;&lt;br /&gt;The EU has opened two new investigations into Microsoft's abusive dominant practices. More importantly .NET is part of this investigation, an except of the story is listed below along with the link.&lt;br /&gt;&lt;br /&gt;".NET. A programming language used by Microsoft to build its software. The EU investigation will try to verify if this code is made in a way that prevents competitors from developing their own languages freely. Java is one of the most famous alternatives to .NET and is developed by Sun &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Microsystems&lt;/span&gt;. "&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.euractiv.com/en/infosociety/eu-opens-new-antitrust-probe-microsoft/article-169543"&gt;http://www.euractiv.com/en/infosociety/eu-opens-new-antitrust-probe-microsoft/article-169543&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm urging all developers, especially Visual FoxPro and Visual Basic, to contact their government representatives and various government agencies with regards to Microsoft's decision to stop development of Visual FoxPro and Visual Basic programming langauges and to emphasis in the communication the negative economical impact Microsoft's actions has on not only developers but third party VB and VFP vendors along with our customers with Visual Basic and Visual FoxPro applications. Microsoft's actions are an obscene &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;massacre&lt;/span&gt; of their ethical &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;responsibility&lt;/span&gt; to the Visual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;FoxPro&lt;/span&gt; and Visual Basic communities and businesses with Visual Basic and Visual Foxpro applications. With any luck the EU or US Government will get involved in Microsoft's seemingly abuse of power.&lt;br /&gt;&lt;br /&gt;.Mark&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-1616612080551248668?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/1616612080551248668/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=1616612080551248668' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1616612080551248668'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/1616612080551248668'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/02/net-part-of-eus-new-anti-trust.html' title='Microsoft&apos;s New Legal Troubles'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5373564392160793625.post-7526792531402057776</id><published>2008-02-21T14:07:00.001-08:00</published><updated>2008-02-22T07:13:19.832-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic'/><category scheme='http://www.blogger.com/atom/ns#' term='DOTBLOAT'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><title type='text'>DOTBLOAT IS BACK!</title><content type='html'>I guess I upset someone at Microsoft or one of their cheerleaders as my blog was hacked and deleted. So fear not DOTBLOAT is back defending the rights of developers against the Microsoft Monopoly -- joining the protest of the abandonment of Visual Foxpro and Visual Basic Communities by the Microsoft rich and shameless - and lastly speaking up against the detestable act of outsourcing American jobs to India. The links to the Microsoft Execs are listed on this blog, let them know your frustrations with .NET and we wants our RAD development tools back!&lt;br /&gt;&lt;br /&gt;In destroying my content they fed my passion.&lt;br /&gt;&lt;br /&gt;.Mark&lt;br /&gt;&lt;br /&gt;Some interesting blog posts about Microsoft&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;"Personnel decisions excluded, I'm not sure Microsoft has made a sound business decision related to VFP since they acquired it, unless the decision from day one was simply to kill the market. In that case, my hat is off to Microsoft. They can declare "mission accomplished" in the VFP market place in much the same way George Bush did in Iraq and with equal credibility. In reality, what's done is done and the reason - or lack thereof - behind the decision isn't all that important. I've signed the petition at MasFoxPro.com and think anyone with any interest in VFP should, but I don't expect anything to come of it. I'd love to be wrong. What frosts me the most about the whole thing is the absolute BS we've been fed about VFP not fitting into .NET. I've had several conversations with Microsoft folk about making VFP part of .NET and they would always come back with silly arguments about "how would you compile …" If there were any merit to those arguments then in reality what they were saying is that VFP is more capable than .NET and if so, what kind of a "business decision" is being made here? Maybe I'm just being too harsh and those guys at Microsoft just aren't that sharp after all. Maybe even with all of their vast resources the folks at Microsoft just can't figure this stuff out, yet a tiny little company like &lt;/span&gt;&lt;/em&gt;&lt;a href="http://www.etecnologia.net/"&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;eTechnologia.net&lt;/span&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt; can.Ok, ranting aside, the truth is it would've been more difficult to make VFP a .NET language back in the 90's because .NET wasn't as capable then and Microsoft was hell bent against dynamic languages. But now? Microsoft is investing in creating versions of Python and Ruby for .NET and of course already has Jscript. If these dynamic languages can be developed for .NET, there's no reason VFP can't be ported to .NET. The new DLR (Dynamic Language Runtime) for .NET should make this relatively easy. The marketplace has made Microsoft take notice of dynamic languages and as a result, a VFP.NET would take considerably less effort than it would've in the 90s.Now, ask yourself this, if Microsoft is making business decisions about VFP, don't you think there should be some logic applied across the board? Look at the VFP, Ruby and Python markets. Which market offers millions of lines of code, thousands of developers, hundreds of large customers and hundreds of vertical market applications? Now ask yourself, where's the business decision here?" - F1 Technologies Web Blog&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-size:85%;"&gt;"If you spend the money to upgrade to VB.NET, well, you just spent a lot of money to stand still. And companies don't like to spend a lot of money to stand still, so while you're spending the money, it probably makes sense to consider the alternatives that you can port to that won't put you at the mercy of a single vendor and won't be as likely to change arbitrarily in the future. So as soon as people with large code bases start hearing that they're going to have to work to port their apps from VB to VB.NET with WinForms, and then they start hearing that WinForms isn't really the future, the future is really this Avalon thing nobody has yet, they start wondering whether it isn't time to find another development platform." - Joel on Software &lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;a title="Sign the Petition!" href="http://classicvb.org/petition/?lang=en"&gt;&lt;span style="font-size:85%;"&gt;&lt;img src="http://classicvb.org/images/petitionbanner12f.gif" border="0" /&gt; &lt;/span&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5373564392160793625-7526792531402057776?l=dotbloat.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotbloat.blogspot.com/feeds/7526792531402057776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5373564392160793625&amp;postID=7526792531402057776' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7526792531402057776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5373564392160793625/posts/default/7526792531402057776'/><link rel='alternate' type='text/html' href='http://dotbloat.blogspot.com/2008/02/dotbloat-is-back.html' title='DOTBLOAT IS BACK!'/><author><name>Mark Gordon</name><uri>http://www.blogger.com/profile/06312405857371752407</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
