Showing posts with label Microsoft. Show all posts
Showing posts with label Microsoft. Show all posts

Saturday, February 19, 2011

Weekend Thoughts

Windows 7 Mobile

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.


Windows Phone Reloaded: Can We Trust Ballmer's Promises?
Microsoft promises multitasking, HTML5, and more for its underperforming mobile OS

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.

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).

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.

View Full Article


NHibernate Resources and Video Series

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. Summer Of Nhibernate

.MARK Is Human

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.

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."

Active VFP

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. Active VFP On Codeplex

Have a great weekend.
.Mark!

Friday, February 18, 2011

.SEX - Get A Microsoft MVC Programmer Laid Benefit Drive!

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.

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.

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!

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!

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.

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!"

Is this is a great freaking idea or what!

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.

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!

Until next time

Happy Coding.
.Mark!

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!

Sunday, December 19, 2010

First Impressions of Windows 7

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

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

-- Esther Schindler, OS/2 Magazine


I truly believe Windows 7 gives merit to the quote.




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

Let's dig into Windows 7.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Until next time......

.Mark

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

http://whatupdave.com/post/1170718843/leaving-net

Wednesday, December 15, 2010

Soma's Blog Comments Regarding VS Momentum


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

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

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

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

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

Lot to think about...



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

Tom:

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

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

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

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

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

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

Guillaume

Director of Product Management - Microsoft


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


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

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

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

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

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

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

Regards,
.Mark

dotbloat.blogspot.com



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

Happy Coding!

Until Next Time....

.Mark

Tuesday, December 14, 2010

Microsoft VS The Virus ....

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

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

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

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

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

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

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

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

Some things to think about ......

Till next time

.Mark

Thursday, December 9, 2010

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

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

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

After all “Source Code Doesn’t Lie”…

The Entity Framework CTP 5

Step 1 Model Class and DB Context classes.

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

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

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

Now we have to jerk with the category table class

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

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

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

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

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

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

Step 2 Configure the connection string

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


connectionString="data source=.\SQLEXPRESS;Integrated
Security=SSPI;AttachDBFilename=|DataDirectory|\northwind.mdf;
User Instance=true"
providerName="System.Data.SqlClient" />


Step 3 Pull a collection from EF

DOT GLUE used linq in this example

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


NorthWind Northwindw() = new NorthWind();

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

Step 4 an EF update

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

// this is where the VS Cheerleaders have an orgasm and praise gu!
Northwind.SaveChanges();

NOW Let’s run through this same example in VFP

Yes no class code or data context required.

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

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

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

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

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

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

Perform an Update

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

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

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

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

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

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


EF Validation

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

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

Ironically in the next paragraph THE GLUE discusses Keeping things DRY





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

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


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

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

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

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

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

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

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

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

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

Until Next Time

Happy Coding!

.Mark

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

http://msmvps.com/blogs/peterritchie/archive/2008/06/25/entity-framework-petition-of-vote-of-non-confidence.aspx

Donn Felker Android and MVC

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

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



Here is the link to the full article.

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

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

Happy Coding!

Until Next Time

.Mark

Monday, December 6, 2010

Micrsoft the Next IBM

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

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

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

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

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

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

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

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

Anyway . . . .

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

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

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

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

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

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

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

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

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

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

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

Until Next Time.

Happy Coding and Think Open Source!

.Mark

Wednesday, November 17, 2010

DOT GLUE Firestater

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

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

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

Here is another excerpt I pulled off a blog today.

Microsoft to embrace and extend HTML 5?

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

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

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

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

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

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

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

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

Your friend
.Mark

Saturday, May 30, 2009

Bing - 3 Strikes Microsoft is Out!

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!

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.

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.

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.

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 !

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 !

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!

* 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.

* 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.]

* 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?]

* Over 37% of the total human excreta generated in urban India is unsafely disposed, according to the National Urban Sanitation Policy document prepared by India’s Ministry of Urban Development

* According to the 11th Five-Year plan document, of the 200 million dwelling units across India, only 40 million dwelling units have a toilet 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 !]

* 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]

* The Government of India acknowledges 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.]

* 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?]

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 !

Until next time avoid bing and VS 2010 beta.

By the way I have joined facebook please look me up I would like to hear from you.

Your Friend,
.Mark

Wednesday, March 11, 2009

Who is really to blame for Visual Studio?

Scott's Gu posted a chapter from the new MVC 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 Gu, 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 Gu 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 Gu in a clear lapse of thought insist on reinventing the wheel. Their exercise in stupidity comes at great cost to developer productivity.

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 cheerleading 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 Gu, Soma and Microsoft for the current state of Visual Studio and .bloat as we became the ignorant end users.

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 FoxPro 2.0 - which on a productivity level equate closer to Mainframe COBOL. The cheerleaders as much as Soma, Scott Gu 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?

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.

.Mark

Friday, February 27, 2009

Source Code Doesn't Lie #3 - The Visual Studio Class Browser

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 reuseability. 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.

Before moving to looking at the class browser lets review a simple example of how inheritance works.

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 properties that tell us what is happening to the vehicle: "Are headlights On", "Is Motor Oil Full", "Are Seat Belts Fastened" etc....

Next we are going to build a benz 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.

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 property like "Is Transmission Fluid Low" instead of adding this to both the benz and septic tank truck we only need to write the code into the vehicle class because the benz and septic tank are inherited from the vehicle class, this new property is there and ready for us to use. Neither the benz or septic tank truck have to worry about everything going on behind the scenes to make "Is Transmission Fluid Low" work.

So it should be clear why this is a great programming model and a huge time saver.

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 Foxpro's class browser to that of Microsoft newest technology advancement, 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.

Below is the legacy FoxPro class browser. It is the standard explorer interface. For the purpose of this sample I added a UI control and subclassed 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 browser NOT in code like in the great Visual Studio 2008.
















Double clicking on a class allows you to drill into the class browser code environment where you can create proprieties, methods and add programming code. With the legacy Visual FoxPro Class Browser you have a "productive" environment to get your work done. You have a property sheet that displays all the proprieties, events 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 .




















Now lets examine the Great Visual Studio's Class Browser. It looks flashier then the VFP 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 UI controls using the class browser, remember this is something the legacy FoxPro Class Browser could do.























After the class diagram has been constructed you switch to, what I refer to as, Visual Studio's DOS MODE and you are basically digging through code to do everything that needs to be done with the classes. Unlike the legacy Visual FoxPro's class browser, Visual Studio doesn't provide you with a productive code environment instead we are given a text editor with intellisense to maintain the code.

Below is the code the simple vehicle class structure generated that we have to maintain using Visual Studio 2008 glorified text editor.

using System;
using System.Collections.Generic;
using System.Text;

namespace sample
{

class Vehicle
{

public int IsOilFull
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}

public int AreHeadLightsOn
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}

public int AreSeatBeltsFastened
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}

public void Motor()
{
throw new System.NotImplementedException();
}

public void TurnEngineOn()
{
throw new System.NotImplementedException();
}

public void TurnEngineOff()
{
throw new System.NotImplementedException();
}
}

public class Benz : Vehicle
{
}

public class SepticTruck : Vehicle
{
}

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.

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.

..."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"...

To add insult to injury, with WPF Microsoft is moving away from this productive object oriented subclass programming paradigm for UI 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 WPF/XAML 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!

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...

The score sheet thus far:

Sample Application: Legacy FoxPro beats Visual Studio 2008 and .NET
Class Browser: Legacy FoxPro beats Visual Studio 2008 and .NET

Legacy Visual FoxPro: 2 points
Visual Studio 2008 and .BLOAT: 0 points

Maybe I should have used DOS Foxbase to compare against Visual Studio 2008 to give Visual Studio a chance.

Until next time let's all "develop at bloat speed" with Visual Studio 2008 and the 70k+ classes of the .BLOAT API wrappers.

.Mark

Monday, February 16, 2009

Source Code Doesn't Lie

MSFT'S NEW CATCH PHRASE - VISUAL STUDIO: DEVELOPING AT LIGHT SPEED

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:

VISUAL FOXPRO 26 LINES OF CODE - 8 MINUTES *from scratch

VISUAL STUDIO 2008 POWERED BY 70K+ CLASSES OF .NET BLOAT 300+ LINES OF CODE - 35 MINUTES! *using some of my prewrriten framework components!

------------------------------------------------------------------------------------

Background

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:

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..

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.

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.

Specifications

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. .

Actions speaks louder then words

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.

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.

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.

Development Cost

Visual FoxPro: 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.

Visual Studio: 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. YES THAT IS RIGHT MORE THEN 10 TIMES MORE CODE THEN FOXPRO. 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.

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.

...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!!

Waiting for the cheerleaders to prove me wrong

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.

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.

Cheerleaders - No excuses for Visual Studio Please - Source Code Doesn't Lie

I know the arguments the cheerleaders will make:

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!

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.

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!

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!

I'm sure they will come up with other excuses and I will deal with those as they arise.

Why do this to the Great Visual Studio and expose the truth?

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.

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.

Microsoft is also trying to redefine OOP and N-TIER standards by totally taking the focus off reuse and creating a cluster-f&*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#!

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.

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!

This is why this blog exists and I waste my time with my friend, Soma!

Some other random thoughts

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!

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 ... http://blogs.zdnet.com/carroll/?p=1890

FINALLY: The results and Foxpro code in detail

VFP Lines Of Code:
Form Init: 10 (Most of this code just sets properities which could have been done using the property sheet)
Button Click Code: 5
Middle Tier Code To Populate A Cursor: 4
Middle Tier Code To Generate an Excel File from a FoxPro Cursor: 7

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.

Total lines of code I had to write: 26
Time to build the application: 8 minutes


Below are the screen shots and code to evidence I actually did write it.

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!



















**************************************************
*-- Form: form1 (d:\sam\sample.scx)
*-- ParentClass: form
*-- BaseClass: form
*-- Time Stamp: 02/16/09 10:46:00 PM
*

* NOTE: THIS SECTION OF CODE VFP AUTO GENERATED FROM THE FORM DESIGNER

DEFINE CLASS form1 AS form

Top = 76
Left = 252
Height = 393
Width = 691
DoCreate = .T.
Caption = "Form1"
odatalayer = ""
cfilename = ""
Name = "Form1"

ADD OBJECT grid1 AS grid WITH ;
Height = 336, ;
Left = 0, ;
Top = 29, ;
Width = 696, ;
Name = "Grid1"

ADD OBJECT command1 AS commandbutton WITH ;
Top = 365, ;
Left = 312, ;
Height = 27, ;
Width = 127, ;
Caption = "Command1", ;
Name = "Command1"

ADD OBJECT command2 AS commandbutton WITH ;
Top = 365, ;
Left = 438, ;
Height = 27, ;
Width = 127, ;
Caption = "Command2", ;
Name = "Command2"

ADD OBJECT command3 AS commandbutton WITH ;
Top = 365, ;
Left = 564, ;
Height = 27, ;
Width = 127, ;
Caption = "Command3", ;
Name = "Command3"

ADD OBJECT label1 AS label WITH ;
Alignment = 1, ;
Caption = "Label1", ;
Height = 17, ;
Left = 8, ;
Top = 7, ;
Width = 121, ;
Name = "Label1"

ADD OBJECT text1 AS textbox WITH ;
Height = 23, ;
Left = 137, ;
Top = 3, ;
Width = 551, ;
Name = "Text1"

* END AUTO GENERATED VFP CODE

PROCEDURE Init
* Note I added two properties to the form cFileName and oDataLayer using the property manager
* Reference to tell VFP where the class library can be found
SET CLASSLIB TO datalayer.vcx
* Get rid of the word NULL in the grid
SET NULLDISPLAY TO ""
* Set a caption on the form
THISFORM.Caption = "VFP Example"
* Set the label caption for the filename to save and bind the textbox to the property
* Note this could have been set using the property sheet
THISFORM.Label1.Caption = "Selected Filename:"
THISFORM.Text1.ControlSource = "THISFORM.cFileName"
THISFORM.Text1.Alignment = 0 && Right Align

* Set the captions on the command buttons
* Note: This could have been done in the property sheet
* I split these into seperate buttons for the purpose of code examples
THISFORM.Command1.Caption = "Get Filename"
THISFORM.Command2.Caption = "Populate Grid"
THISFORM.Command3.Caption = "Export Grid"
* Get a reference to the middle tier SQL data layer
* Note: The class could have been dropped on the form
THISFORM.oDataLayer = CREATEOBJECT("cusSqlData")
ENDPROC

PROCEDURE command1.Click
* Use the built in VFP GetFile dialogue box
THISFORM.cFileName = GETFILE("XLS")
* Refresh the textbox
THISFORM.Text1.Refresh()
ENDPROC

PROCEDURE command2.Click
* Get a cursor from the adventurework person.contacts table for security I did not display the connection string
THISFORM.oDataLayer.PopulateCursor("Contacts", "MyConnectionString", "Select * from person.contact")
* Bind the dataset to the grid
THISFORM.Grid1.RecordSource = "Contacts"
ENDPROC

PROCEDURE command3.Click
* Export the sql contacts table to excel
THISFORM.oDataLayer.ExportCursor("Contacts", THISFORM.cFileName)
ENDPROC

ENDDEFINE
*
*-- EndDefine: form1
*************************************************


**************************************************
*-- Class Library: d:\sam\datalayer.vcx
**************************************************

**************************************************
*-- Class: cussqldata (d:\sam\datalayer.vcx)
*-- ParentClass: custom
*-- BaseClass: custom
*-- Time Stamp: 02/16/09 10:32:12 PM
*
DEFINE CLASS cussqldata AS custom

Name = "cussqldata"

PROCEDURE populatecursor
* tcCursorName name of the dataset to return
* tcConnString name of the connection string to use
* tcSelectStatement to execute against the sql database
LPARAMETERS tcCursorName, tcConnString, tcSelectStatement
* lnHandle holds a connection to sql server
LOCAL lnHandle
* Connect to sql
STORE SQLSTRINGCONNECT(tcConnString) TO lnHandle
* Create a dataset
SQLEXEC(lnHandle, tcSelectStatement, tcCursorname)
ENDPROC

PROCEDURE exportcursor
* tcData name of the cursor to export
* tcFileName name of the excel file to create
LPARAMETERS tcDataSet, tcFileName
* This code is not needed for this example but
* it is a good practice when changing workareas to save off the current one
LOCAL lnSelect
lnSelect = SELECT()
* Create the excel file
SELECT (tcDataSet)
COPY TO (tcFileName) TYPE XLS
* Return to the original workarea
SELECT (lnSelect)
RETURN .T.
ENDPROC

ENDDEFINE
*
*-- EndDefine: cussqldata
**************************************************

Until next time - Develop at bloat speed!

.Mark

Saturday, February 14, 2009

Windows 7: Vista Renamed!

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.

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.

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?

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.

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.

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,

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.

.Mark

Tuesday, January 6, 2009

Christmas In Rome

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.

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.

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?

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.

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?

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.

Wishing you a happy 2009!
.Mark

Friday, December 5, 2008

WTF Moment: Bill Gates on the economy

I want to preface this article with some comments by a manager at Microsoft Redmond on his visit to the Microsoft India Campuses.

"... 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. 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. "

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.

He goes on to state:

"...meanwhile, a few exceptions aside, the quality of the work is abysmal. Components that came back to Redmond had to be completely rewritten. ...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. "

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.

You can read the full post here http://minimsft.blogspot.com/2008/05/whats-up-with-microsoft-india.html

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.

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 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 ....

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.

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.

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.

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!


GOD Bless America!
.Mark