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

14/08/2009

Clear | Remove Query Strings From Post Backs (ASP.Net, SharePoint)

As part of an unorthodox request I was asked to make a TabStrip component SEO friendly. My first thought was to completely rewrite the control to make use of GET requests rather than continuing to POST the data back to the server.

Immediately I ran into a problem with this approach as the developers of this site have implemented the majority of these TabStrip controls inside the ASP.Net UpdatePanel (don't get me started with these) which does not recognize GET requests as Async events.

The architect of this site (actually a SharePoint site) failed to recognize that the SharePoint indexing service would not be able to index information on any tab other than the default one (as subsequent requests for tab data are done using Asynchronous Events). When project management asked him to modify the tabs for accessibility he told them it was impossible without a complete redesign.

As a solution to this problem I modified the TabStrip control such that it renders an anchor tag rather than a link button and added some fancy JavaScript to cancel the Anchor tag click event and trigger the appropriate __doPostBack option. I now have a crawl able anchor tag, which works like a link button, and triggers the appropriate update.

Moreover, when the TabStrip is initialized (OnInit) it looks for a specific query string variable indicating the ID of the selected tab. This is when the real problem starts:
  1. Indexing service crawls the anchor and builds a GET string reference to the selected tab id.
  2. Page is loaded into browser.
  3. User selects different tab.
  4. TabStrip is initialized finding the previous (last selected tab) tab id.
  5. TabStrip raises MenuItem Click event ignoring the actual new selected tab id.
The problem then becomes: How do I Clear The Query String From Subsequent Post Back Operations?

My quest turned to the Google.

First I found this approach which actually removes the query string VIA triggering a post back and is therefore too wasteful to be my solution.

I then found the following approach which unfortunately fails to load as it uses the ugly document.all JavaScript method which isn't available until after page load (therefore causes a client side exception - even when registered properly as a StartupScript).

I put together a slightly different JavaScript routine that looks like this:

if(window.onload != null) {
var wol = window.onload;
window.onload = function(e) {
wol(e);
document.forms[0].action = "Index.aspx";
}
} else {
window.onload = function() {
document.forms[0].action = "Index.aspx";
}
}


This JavaScript Method then rolls nicely into an ASP.Net Server Control like so:
///
/// Attempt to remove the tab id from the query string
///

private void AddRemoveTabIdQueryString()
{
const string key = "REMOVETABIDQUERYSTRING";
if (!Page.ClientScript.IsStartupScriptRegistered(GetType(), key))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), key,
string.Format("if(window.onload != null) {{var wol = window.onload;window.onload = function(e) {{wol(e);{0};}}}} else {{window.onload = function() {{document.forms[0].action = \"{0}\";;}}}}", GetRequestPageName()), true);
}

// Get the page Name of the request
private string GetRequestPageName()
{
string rawUrl = Page.Request.RawUrl;
int pos = rawUrl.LastIndexOf("/");
int qpos = rawUrl.LastIndexOf("?");
return qpos > -1 ? rawUrl.Substring(pos + 1, qpos - pos - 1) :
rawUrl.Substring(pos + 1, rawUrl.Length - pos - 1);
}

I hope this is helpful to others.

Over and Out

13/08/2009

SPJobDefinition Quirks For Developers

I wanted to write a quick heads up on a couple quirks relating to the SPJobDefinition and wiring up Timer Jobs (may be relevant for deployments where the Timer Jobs are modified). We are building our solutions on Windows 2003 Server with MOSS 2007.

To debug SPJobDefinitions attach VS debugger to OWSTIMER.exe process after following install instructions below.

OWSTIMER is caching the SPJobDefinition somewhere and is tricking Visual Studio into thinking we are actually debugging the most recent compiled version when we are debugging the last loaded version.

To fix this, kill the OWSTIMER process in process explorer (or restart the Windows Sharepoint Services Timer by typing the following at the command prompt: net stop sptimerv3 & net start sptimerv3) and then refresh the portal you are performing development on (this will force a restart of OWSTIMER.EXE and clear the cache).

Between tests ensure you completely remove the SharePoint feature (deactivate + uninstall) from Sharepoint (see below). Then kill the OWSTIMER process, iisreset, rebuild the solution and reinstall / activate the solution again (see below).

Here are a couple batch files convenient for removing / installing the jobs (where ProvisioningVX is the name of the feature you are trying to install):

Uninstall Batch File

@ECHO OFF

set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\BIN\stsadm.exe
set TargetUrl=http://servername/sites/name

echo "Deactivating Feature"
"%SPAdminTool%" -o deactivatefeature -name ProvisioningVX -url %TargetUrl% -force

echo "Uninstalling Feature"
"%SPAdminTool%" -o uninstallfeature -name ProvisioningVX -force

iisreset

PAUSE

Installing and activating the feature

@ECHO OFF

set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\BIN\stsadm.exe
set TargetUrl=http://servername/sites/name

echo "installing feature"
"%SPAdminTool%" -o installfeature -name ProvisioningVX -force

echo "activating feature"
"%SPAdminTool%" -o activatefeature -name ProvisioningVX -url %TargetUrl% -force

iisreset

PAUSE

12/08/2009

How To: Debug SPJobDefinition in Visual Studio

The solution is remarkably simple.

Click Debug -> Attach To Process

Note: At this point, ensure the checkbox "Select processes from all users" is selected.

Select OWSTIMER.EXE from the list.

Setup a breakpoint on the Execute override method.

Be patient and wait for the timed job to execute.

06/08/2009

My First Zune Badge: A Lesson in mediocrity

I finally got my first Zune badge today and with it, a lesson in mediocrity. Microsoft may want to rethink their strategy as to how these badges are issued as I now feel that I listen to a bunch of kindof sortof artists..

The Bronze Artist Power Listener award! Wooo Hooo. Are you kidding me? Thanks for this bronze mediocre accomplishment. What if it was a Platinum Artist Power Listener award? Does that mean I've listened to the most commercial music possible - that I am a power listener of platinum artists? What about, Gold. What about Silver.

Either way, I'm still happy that Microsoft has finally allowed me to create a Zune account. Thanks for the good work.

Over and Out

26/06/2009

Setup Visual Studio To Easily Pull PublicKeyTokens

Interesting article here: http://blogs.msdn.com/kaevans/archive/2008/06/18/getting-public-key-token-of-assembly-within-visual-studio.aspx

The article explains a couple tricks as to how to get PublicKeyTokens out of your signed assemblies in a quick and simple manner.

Enjoy.

Over And Out

17/06/2009

Bing.com is Amazing!

I’ve been using Bing for one week to see if it can replace Google.

I can now say that Bing does 100% replace Google and in many circumstances I’ve found it not only easier to use, but faster, and more relevant.

Try switching your search engine to Bing and give it a test – I’d love to see what other people think!

Feel free to leave hateful comments, it's all part of the game.

Over and Out

29/05/2009

WANTED: Windows Error Collage

I need new desktop wallpaper.

And you know you're a nerd when you have a vision that this wallpaper should be a collage of all the worst Windows error prompts imaginable.

Ideally the collage would have a background with a Windows Blue screen.

Then, as if this ask makes absolutely no sense already I want as many verbose Windows Error dialog messages stacked on top of the blue screen as possible.

The idea is that the log on dialog should be obscured by the plethora or other error messages.

This collage should look so horrible that it will be a deterrent for anyone to use the computer.

This is a moronic idea - but if anyone has seen something like this, please leave a comment.

Over And Out

06/05/2009

.Net Custom Panel Control with Transparent Background (no png's, css hacks, or problems)

I'm making a really quick post on how you can wrap the jQuery fadeBack control into a .Net Web Custom Control. If you haven't read the article on the fadeBack control, you will have to go here and grab the source.

Save the scripts in a script folder inside your Web Site / Web Application.

To use this control you need to add a reference to the Web Server Control project you have built the code in.

To use this control in your WebForm please Register the Web Server Control dll and namespace on the page like:
<%@ Register Assembly="<<NAME OF WEB SERVER CONTROL PROJECT DLL>>" Namespace="<< THE NAME OF THE NAMESPACE>>" TagPrefix="ctl" %>

Then you can start using the control like so:

<ctl:TransBackPanel ID="backTest" runat="server"
Width="400px" Opacity="20" BackColor="Aquamarine"
BorderColor="Red" BorderWidth="10px" BorderStyle="Solid">
<ctl:TransBackPanel ID="TransBackPanel1" runat="server"
Width="300px" Opacity="20" BackColor="Red"
BorderColor="Green" BorderWidth="10px" BorderStyle="Solid">
<div>Hello World!</div>
</ctl:TransBackPanel>
</ctl:TransBackPanel>

Below is the source code for the .Net Web Custom Control, add this to a Web Server Control project and build:

[ToolboxData("<{0}:TransBackPanel runat=server></{0}:TransBackPanel>")]
public class TransBackPanel : Panel
{

// the jQuery script reference
public const string JQUERY_KEY = "jquery-1.3.2.min.js";
public const string JQUERY_URL = "script/jquery-1.3.2.min.js";

// the transparent background plugin reference
public const string TRANSBACKPANEL_KEY = "jQuery.fadeBack.js";
public const string TRANSBACKPANEL_URL = "script/jQuery.fadeBack.js";

/// <summary>
/// Declare a local variable with the default opacity
/// </summary>
private int _Opacity = 20;

/// <summary>
/// Get / Set opacity to an int - 100 to 0 with 100 being a completely transparent background.
/// </summary>
public int Opacity { get { return _Opacity; } set { _Opacity = value; } }

/// <summary>
/// Override the create child controls method and add the scripts from our constants
/// </summary>
protected override void CreateChildControls()
{

// Register jQuery like so
if (!Page.ClientScript.IsClientScriptIncludeRegistered(JQUERY_KEY))
Page.ClientScript.RegisterClientScriptInclude(JQUERY_KEY, JQUERY_URL);

// Register the fade back external script
if (!Page.ClientScript.IsClientScriptIncludeRegistered(TRANSBACKPANEL_KEY))
Page.ClientScript.RegisterClientScriptInclude(TRANSBACKPANEL_KEY, TRANSBACKPANEL_URL);

base.CreateChildControls();
}

/// <summary>
/// Render the panel control
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{

// Register the startup script to fade the background to another color
if (!Page.ClientScript.IsStartupScriptRegistered(this.ID))
Page.ClientScript.RegisterStartupScript(typeof(string), this.ID, GetOnloadScript(), true);

base.Render(writer);

}

/// <summary>
/// Produce a jQuery on load thingy to geter done.
/// </summary>
/// <returns></returns>
private string GetOnloadScript()
{
return "$(document).ready(function() {\n" +
"$('#" + this.ClientID + "').fadeBack({opacity:" + Convert.ToDouble(Opacity) / 100 + "});\n" +
"});";
}

}

12/03/2009

Windows 7 Release Facts

Windows Vista called on memory ~14,000 times during boot-up. A source inside Microsoft tells me Microsoft has been able to get that number down to 2000 calls to memory. I certainly see a major speed improvement as my 32 bit Windows 7 dual boot starts up much faster than it's 64bit Vista counterpart.

Moreover, it seems the only thing holding back the Windows 7 release is a Direct Connect feature, which allows users to connect to their business or home networks from any internet connection.

My source tells me Microsoft is preparing a Windows 7 release for July 2009 - which probably means September.

Moreover, I've managed to install the Windows 7 beta on a laptop I bought in 1999 with a 933 single core Intel processor and 1GB of (upgraded) ram. Sure, it doesn't have Aero effects, but it has no problem running Windows 7. I'm calling this a NetBook - and it's sweet.

If Windows 7 is released this summer, If it does run on legacy hardware without any issues and it really is as good as everyone says - this could be a huge win for Microsoft - and a big loss for Hardware Mfg's as users do not need to upgrade their XP hardware.

Tell me what you think!

Over and Out

08/05/2008

Microsoft Zune Development Platform RELEASED!!!!! (CTP)

Why is this not news? Do people really not care about Zune. With this release it will be interesting to see what new apps we can load on our devices.

Anyway, as predicted the Microsoft Zune Development Platform has arrived. I'm thinking cardless card games :).

Officially, this is a gaming platform. Unofficially, it's a development platform.

Check out the Zune blog here.

Keep in mind the full platform will not be released until Holiday 2008.

If you are desperate for the CTP direct download from Microsoft try clicking here.

I'm downloading tonight and will report on my development experiences on this blog.

Over and Out

21/02/2008

DreamSpark: Free Microsoft Dev Tools For Students

As I look at a $2500 MSDN Subscription fee, this makes me very jealous. Got any friends that are students?:

"DreamSpark is simple, it's all about giving students Microsoft professional-level developer and design tools at no charge so you can chase your dreams and create the next big breakthrough in technology - or just get a head start on your career.

Who can get this right now?
We are kicking this off in 11 countries/regions, giving DreamSpark to millions of students in the United States, the United Kingdom, Canada, China, Germany, France, Finland, Spain, Sweden, Switzerland and Belgium. If you are not residing in one of the countries listed keep checking back, we will be adding more countries throughout the year."
Applications Include:
  • Visual Studio 2008 Pro
  • Windows Server 2003 Standard
  • SQL Server 2005 Developer
  • Microsoft Expression Studio
  • XNA Game Studio 2.0
  • XNA Creators Club
  • Visual Stuido 2005 Pro
  • Express Editions of (VB, C#, C++, J#, SQL Server, Visual Web)
  • Microsoft Virtual PC
You can access DreamSpark here: https://downloads.channel8.msdn.com/

14/11/2007

Microsoft and Silverlight @ ZuneOriginals.net

OK Microsoft,

When you release a new technology and you promote it as an alternative to Flash please at least make a little attempt to actually use the technology in one of your production web sites. I can't say much of your continued use of Flash in your production web applications. It's frustrating and it's degrading to your developer base. Do you actually think that any developers will jump on board with the technology when you yourselves don't even use it?

If anyone has any insight in to why the https://zuneoriginals.net site is written in Flash please let me know. I would have thought this project was a great candidate to show off what the Silverlight technology can do with a little Zune 2 demo with HD quality streaming video etc. I guess someone at Microsoft wasn't so keen.

Is Silverlight a pipe dream? Will Microsoft even use it in their production implementations? Or is Flash just that much better? You tell me! Would you ever use it?

Over and Out

07/11/2007

PLEASE READ! IT WAS ON GOOD MORNING AMERICA & TODAY SHOW

OK Internet Morons. If one of my friends ever sends this email to me again I think I may seriously lose it. Bill Gates IS NOT PAYING MONEY TO SPAM PEOPLE!!! Bill Gates is a very generous man, but sweet baby J.C., come on people.

I don't know what is worse, the fact that some people are so stupid they actually think Microsoft will pay them out, or that some people are so desperate for cash that they become so stupid. Regardless, it's amazing how money talks - or should I say, how people will do the dumbest things for money.

I enjoy debunking these ridiculous forwared'd emails. I enjoy it when smart people make themselves look so dumb when the prospect of making a couple bucks comes along. I could make a slanderous claim here but I won't.

So for all of those idiot friends of mine, who have just made me aware to either their pitiful financial situation, or to their complete and utter idiocy; Here is your sign:


^
I'm Stupid


Print it out, hang it on your neck, and next time I come across you in a bar I won't offer to buy you a drink, nor will I pry your brain for a shred of original insight. Further, don't forward me junk, and don't forward junk at all. I guarantee you some other moron will just forward it to me and I will see your email in the forwared'd spam mail harvesting list and harass you for it. But the same person to my knowledge sent this out more than once after I busted her for it (but didn't copy me the second time - dah, I got the next forward). What an idiot!

"This isn't real, it wasn't written up in USA Today (other than in articles about Internet hoaxes), Microsoft and AOL aren't running a tracked "e-mail beta test" with Bill Gates paying people for participating, and Intel and AOL aren't merging. The bottom line is that no matter which incarnation of this silliness one receives, the principle is the same: there's still no free lunch, and big companies aren't going to hand out fabulous vacations, $1000 bills, free trendy clothes, new computers, cases of candies, wads of cash, or new cars just because someone with a functioning Internet connection does them the favor of forwarding an e-mail. Though at first blush, participating in such pie-in-the-sky wishfulness appears perfectly harmless, such participation only serves to clog up already overtaxed resources. Oh yes, it does one other thing: it gives the idjits who cooked up these frauds a great big laugh at your expense."

I just don't understand how such a simple Google search couldn't inform these people to this hoax. It has been going on for 10 years!!!

"Opps I just forwarded this e-mail to about 12 people and I've been waiting for my check to come in the mail. The person that e-mailed me said please read cause it was on Good Morning America. I figured if it had been on Good Morning America it must be true. I didn't know thanks for telling me." - here's your sign Stupid
"No offence, but you can't seriously tell me that you think Bill Gates wold pay for spamming."
"Here's a good hint - if it seems to good to be true, it normally is."
''There's a sucker born every minute."
"Jeez, people's stupidity is only matched by their greed."
"I've been dying for years to write one of these things just to get off on knowing that idiots everywhere were passing it on." - here's your sign Stupid
"I don't think most of us know enough people stupid enough to fall for it to make it worthwhile." - I didn't either, but then again, I've got this email so many times I don't even need to read the body any more.
"It is fascinating, isn't it? I've wondered myself, what is that little tic in the brains of people who have this need to get you to pass on chain e-mails? It bugs the heck out of me. I'm not talking about the scams that involve money (which are naturally offensive because they actually cause harm), I'm talking about e-mails like the one Alison mentions here, where they simply want to see you pass it on. Do the people sending the e-mails out need validation in their lives so badly? Does it ease some insecurity if they can get you to do what they say? It reminds me of a child pointing behind you to make your turn around and then singing "Made you look! Made you look!""
Over And Out

23/10/2007

Microsoft vs. Open Source = Hilarity Part 2

I like pointing out other peoples mistakes. I hate it when I make mistakes. But I'm only human, and can only fly in my dreams, so I guess I make mistakes too. But I'm not trying to reflect on my failures. That's not my style, I don't fail all that often, there is nothing to reflect on. I'd rather boast about my success. Or this time, other people's success.

A while ago I wrote an article entitled Microsoft vs. Open Source = Hilarity. Well, this is the follow-up quick blog posting.

Yesterday, Mitchell Baker's the president of the Mozilla Foundation talked about Mozilla's success in fiscal 2006. Give it a read, you will be shocked about the amount of money that is pouring in the door. This serves to be a lesson to everyone including Microsoft that knocks open source. Open Source IS here to stay, and it will only get bigger.

If you have not read my previous post let me refresh your memory. Clint Patterson PR director Microsoft:
"The open-source development model has yet to demonstrate the ability to support profitable software businesses that can drive the coordinated research and testing necessary to sustain innovation," Patterson said.
Well, I guess Extensions, Themes, Add-Ons and um ah etc's still don't count as innovation. I guess neither does tabbed web browsing (added to IE 7 in response to firefox), standards compliance (still waiting), and um the few million members participating in this web browsers development community.

I guess the $66.8 million or 25% YOY Revenue increase isn't profitable. I guess a gross profit margin ratio of approximately 0.70:1 isn't that good. And I'm 100% sure that because they are open source they will never be able to leverage the nearly 100 million in cash on hand (well at least 66.8 revenue-17.9 expenses) to support profitable software business that can drive the coordinated research and testing necessary to sustain innovation. This definately won't happen according to Clint Patterson.

I'm going to keep harping on this until Patterson retracts his words, or he dies, or i die.

Dear Microsoft, I am a trusty integrator of your services. Please start to understand just a shred of what's going on here, because it's obvious you don't, and when you go down, your going to bring pretty much everyone else down with you. It's not going to be pretty, and it's not like IBM of the old days. You guys support too much of the PC economy - or pretty much everything in the PC economy outside of internet. Please figure out how to make a proprietary shop demonstrate the ability to support profitable software businesses that can drive the coordinated research and testing necessary to sustain innovation.

(But congrats on the F# announcement, I cannot wait to dive into that language, I just hope you are not becoming the next Sun).

Over and Out

18/09/2007

Microsoft vs. Open Source = Hilarity

I wanted to comment on some amusing quotes from a C-Net article titled Microsoft Resumes Bashing Open Source. Firstly, Clint Patterson, public relations director for Microsoft's Unified Communications Group says the following:
"The open-source development model has yet to demonstrate the ability to support profitable software businesses that can drive the coordinated research and testing necessary to sustain innovation," Patterson said. "Many in the open-source software community have shifted to hybrid business models. They are making the same business decisions as any commercial software company in terms of what products and services to give away, what intellectual property to protect, how to generate revenue, and how to participate in the community."
I wonder if Microsoft recognizes that the Mozilla Foundation (Firefox) with 90 employees made over $52 million dollars in revenue in 2005. I don't want to suggest that's almost $600K per open source developer but I just did. Not to mention that Firefox has pushed browser innovation further than any other company could have anticipated VIA Extensions, Themes, Dictionaries, Search Engines, and Plug-Ins - Something Microsoft claimed was not possible.

I laughed pretty hard when I read this quote from Matt Asay, vice president of business development at open-source document management company Alfresco:
"The open-source community has actually been shifting away from hybrid models," he said, pointing to Alfresco, Funambol and MuleSource as examples. "Hybrid was yesterday's model, when people were still trying to get comfortable with the shift. Tomorrow's is 100 percent open, with 'proprietary services' on top."

Those services, Asay predicted, could be either for support, as in Red Hat's case, or as in Internet-hosed services, the kind of thing Yahoo is getting more serious about with its $350 million acquisition of open-source e-mail software maker Zimbra.

This is the way I've thought of Software recently, so I guess it's tough to take MicroSoft seriously when they seem to again be nothing more than one step behind the pack. Any how ...

Over and Out

22/08/2007

Tafiti: Under the Silverlight hood

I'm particular. I looked through the www.Tafiti.com source code and noticed a bunch of stuff that I didn't like about how Silverlight is building the underlying RIA.

In www.tafiti.com there is a function called startSkipjack that uses a Silverlight.createObject function. Back in the day's that used to be a call to ActiveX or some sort of COM object in the browser - but this function is obviously a JavaScript wrapper for the creation of the Silverlight plugin. I'd assume an actual plugin is loaded that is not 100% JavaScript - I'm sure Microsoft would like me to think that too.

Kind of a strange strategy to make a plugin dependent on XAML and JavaScript at the page level but then again I guess any scripting language will suffice and XAML is just XML.

After seeing a working demo certain things escape me ...

Use of Styles

It's use of styles ... Consider this EX//

SJ.Hyperlink(0, 0, 55, 0, "feedback",
"FontFamily='Verdana' FontSize='9' Foreground='#ffffff' Opacity=' 0.8'",
"mailto:tafiti@microsoft.com ");


One would think inline styles would be replaced with CSS. By externalizing CSS developers would be able to modify styles by simply modifying the underlying CSS template. This just makes things easier to maintain. But Kudos for actually using the same syntax in the inline style declarations.

Text Content in JavaScript

My final criticism is: Isn't a huge problem with these Rich UI's (Flash) that search engines have a ton of trouble indexing the actual text and links? In Silverlight text and link info is included in the JavaScript which most search engines will just ignore. Consider this EX//

signInSignOutLink = new SJ.Hyperlink(0, 0, 35, 0, userIsAuthenticated ? "sign out" : "sign in",
"FontFamily='Verdana' FontSize='9' Foreground='#ffffff' Opacity=' 0.8'",
userIsAuthenticated ? userSignoutUrl : signInSignOutLink.openWithName = "_self";
if (!userIsAuthenticated) {
signInSignOutLink.onMouseEnter = function(sender, args) { SJ_ShowToolTip(sender.visual, "Sign in with your Windows Live ID so youcan access your stacks from multiple computersand post stacks to your Windows Live Space.", args.getPosition(SJ.topCanvas)); }
signInSignOutLink.onMouseLeave = function() { SJ_HideToolTip(); }
}

They (Microsoft Silverlight) could have easily put time into developing a sort of hide region feature whereby things like the sign in sign out link could be defined in markup to be hidden and then merely organized using Javascript / Silverlight. They could then subclass the hyperlinks into external and internal Silverlight hyperlinks. This would support search engine indexing ... Consider this alternative to above EX//



Site Size:

I'd be curious to get a Flash developer to develop a simple "Hello World" application and then compare the size of that application to a Silverlight application. My guess is that Silverlight will be significantly larger than Flash merely because it requires XAML and JavaScript to run before launching the application and it's provided in the raw mark-up files. I see this as a drawback for anyone wanting to develop a high performance RIA in Silverlight.

Threadding:

My understanding is that in using Silverlight you may effectually write a client side multi threaded interface. I'm curious to understand how we can actually multi thread when communication between the browser and Silverlight is dependent on JavaScript. Possibly Microsoft can better explain this.

Conclusions:

I'm very suspicious. Is this a plugin or a cached clientside JavaScript library. Or is it as it looks, a hybrid mash-up of a bunch of trendy technologies: Plugin + XML + JavaScript. And if it is the later, why in the lords name wouldn't they make indexing the content a priority and why would they leave crap like inline styles in the source. I'd assume that would be a huge win over Flash etc. especially if the search crawlers can already crawl html.

My Quick Asks For Silverlight:

1) Show me how Silverlight can be used to create Virtual Earth Mash-Ups.

2) Make Silverlight work on Opera Mini.

3) Show me a multi threaded UI example.

Let me know what you think about Silverlight.

Over and Out

16/08/2007

POLL: Are you more productive in Microsoft Office 2007?

It's time to either make yourself known as a fanboy, or a hater ...

Please take a second to respond to my Microsoft Productivity poll which you can find in the right side bar.

Are you more productive in Microsoft Office 2007?

Ideas for upcoming polls:

Does Microsoft Sql Server Integration Services make you more Productive.
Does Microsoft Sharepoint make you more Productive.
Does Microsoft Windows Vista make you more Productive.

If you'd prefer something else, or would like me to make one of these a poll question immediately, please let me know by posting a comment.

08/08/2007

Narcissistic Microsoft Productivity Enhancements: Are you More Productive???

I'm not sure if Microsoft Sales staff is serious when they say their products make people more productive. From my experience lately there is absolutely nothing from Microsoft that makes me more productive. In fact, in abstracting the layers further away from me, I'm becoming increasingly less productive with each iteration of Microsoft technology.

The following productivity enhancement claims from Microsoft have actually made me far less productive. At times up to 90% less productive:
  • Microsoft Office 2007 (Access, Word, Outlook all suck, Visio and Excel are the only apps that are considerably better).
  • Microsoft Windows Vista - don't even want to start on this one. All I wanted to do was change the default font size.
  • Microsoft SQL Server 2005 Integration Services: how can it take 1 day to setup an import data routine? How is it possible to build such a beautiful diagnosic display with such contextually irrelevant error reports?
I decided to check my NetVibes.com start page and did a search for Microsoft and Productivity (I tried variations like productiv etc. to get the most results).

The image at right includes some of the biggest technology blogs and yields no results.

I decided to look a bit deeper into the rabit hole and did a Google Search for Microsoft Productivity. The first thing I noticed was that every result on the first page was to a Microsoft site.

So I decided to do a Yahoo Search for Microsoft Productivity same thing except it contains links to Microsoft Applications that once again claim to make you more productive.

So I decided to do a Windows Live Search for Microsoft Productivity and guess what, there are actually links to 3rd party sites for Microsoft Productivity.

Is Microsoft living in a bubble with respect to measuring productivity? I've lost at least 2 months this year to learning curves in updated Microsoft Tool Kits. I'll never get those 2 months back ever - and it was at the expense of Microsoft Clients that I learned this stuff.

What do you think? With each incremental product release, are you becoming that much more productive? Or are you just like me, frustrated, and looking for other options?

Please let me know your opinion.

Over and Out

Where SQL2005 SSIS meets Developer Hastle in Toolage

This is a very simple thing and it pisses me off that MS gives us such a limited solution here. I'm writing an SSIS package to import Microsoft Dynamics AX information into SQL Server (I know could use WS but the AX implementation is at a client office).

The create table statement that I wrote has about 140 fields. Check out the limited editor window in the below screen print.

Microsoft, please allow functions such as find and replace in this window. Syntax highlighting may be too much to ask for but what the heck. Can't you guys make this open into a nice SQL Query Analyzer form?

The window I'm talking about is called: Enter SQL Query.



Please service pack fix this!

Over and Out

31/07/2007

Microsoft SoftGrid App-Virtualization

Microsoft's SoftGrid App-Virtualization seems like a very over complicated technology

I bet it will do really really well in the enterprise. It's almost like a standalone desktop intranet (If that makes any sense).
"This allows companies who want to make available a single image of Office or even a custom line-of-business application to multiple users to push it out to them without having to touch each desktop. It also will aid companies in deploying application patches, as only the changed/updated bits will be streamed to users’ desktops (rather than all of the bits, including those which haven’t changed), she said."
Q: My major wonder is what benefit does this service serve within the internet application space? A: It keeps us on the Windows OS (and if that is an answer then ...).

As outlined in the following blog,

"“SoftGrid just pull (the bits) that are needed,” said Gavriella Schuster, Senior Director of Product Management of the Desktop Optimization Pack team.”IT doesn’t have to do all the regression testing it normally does. It doesn’t need to check in advance for potential application conflicts and crashes. It’s especially good for users with lots of custom business applications.

SoftGrid also allows users to work offline, since the bits that are installed on a user’s desktop remain there, Schuster noted, even when the machine is disconnected from the corporate network.

SoftGrid application virtualization version 1 (which is part of the current MDOP) allows users to stream applications to any desktop inside their firewall, Schuster explained. But the next version will allow users to stream any application that can be virtualized to their desktops or the Web, she said."

My question remains, how is this any different from hosted rich internet applications?
  1. Regression Testing: isn't required with RIA's at the machine level.
  2. Application Conflicts: isn't an issue with RIA's, they reside on different servers and run within a web browser.
  3. Lots of Custom Business Applications: it's easier in many cases to build RIA's than custom stand alone business applications, further with RIA's that leverage a modular design pattern (think gadgets / widgets) it's possible and easier to X-Integrate RIA's than stand alone applications.
  4. Work Offline even when machine is disconnected from corporate network: this has to be one of the biggest sales gimmicks of the digital era. RIA's can already work offline (AIR / AJAX + Cookies + iFrame Storage Layers + Greasemonkey).
  5. Stream Applications to any desktop inside firewall or on the web: I'm sorry but isn't this the basis of Markup Language over HTTP? Isn't this the underlying nature of WWW? Why would we over complicate again?
Seems to me like this product will do well because it's basically being forced on administrators. Seems to me like every software developer will hate this technology because it adds unnecessary complexity to an already defined and evolved internet based operating environment.

As an enterprise I'd love this as I get to keep my data on my network. But if that is the largest limitation of say "Google Premier Apps" success, then it's just a matter of time until they build a corporate network data connector, and sell you a GDA (Google Data Appliance) that will snap into your hosted RIA's.

Over and Out