<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Josh Heyse</title>
	<atom:link href="http://heyse.us/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://heyse.us/blog</link>
	<description>Thoughts Defragmented</description>
	<lastBuildDate>Wed, 12 Aug 2009 18:45:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Applications of our Future</title>
		<link>http://heyse.us/blog/?p=229</link>
		<comments>http://heyse.us/blog/?p=229#comments</comments>
		<pubDate>Wed, 12 Aug 2009 12:35:00 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://heyse.us/blog/?p=229</guid>
		<description><![CDATA[Preface
In the past I have used my blog as a medium to post code examples, frameworks, and solutions to common programming issues.&#160; My posts have always been heavily focused on the code with short summarization paragraphs.&#160; These types of posts are the easiest for me to write and they just flow.&#160; I guess the reason [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Preface</strong></p>
<p>In the past I have used my blog as a medium to post code examples, frameworks, and solutions to common programming issues.&#160; My posts have always been heavily focused on the code with short summarization paragraphs.&#160; These types of posts are the easiest for me to write and they just flow.&#160; I guess the reason is that through my 12 years of development I have become more comfortable writing C#, and other programming languages, than English.&#160; Yes, I said it, I find it easier to communicate with a computer than with other people.&#160; I’m a geek! </p>
<p>I plan to continue to post code snippets, solutions to encountered problems, and new frameworks; but I will also start posting about some of my thoughts on the future of our technical industry.&#160; I’ve been making statements about the direction of our industry through discussions with my peer’s offline for years, but I have never brought these ideas to the online community.&#160; The quickly approaching future of our industry has made me realize that if it’s not online, it doesn’t exist (or won’t for long).</p>
<p><strong>Introduction</strong></p>
<p>Over the last several years we have been inundated with buzz terms like Web 2.0, rich internet applications (RIA), and cloud operating systems.&#160; These are not new concepts just the next iteration in the cycle of technology. People were predicating the death of the personal computer operating system back when Netscape 4.0 was released.&#160; They weren’t wrong just a little a head of their time.&#160; Software has been headed that way for years, but we’ve been waiting for the hardware folks to catch up.&#160; Over the past two years we have finally gotten the internet connectivity (in a majority of the US) necessary to make online feasible over offline.&#160; With WiMax being adopted across the United States, in 2-4 years if you are in a location that has power and indoor pluming, you will probably be able to get a 2Mb+ connection.&#160; Those catch phrases aren’t just marketing propaganda any longer, they are 1st class citizens in our technical world. </p>
<p>Since everything is moving to an online world it makes sense that our operating systems will follow.&#160; But what does an operating system mean in the context of an online desktop?&#160; Is it the file system?&#160; Process &amp; CPU management? Application integration points?&#160; To the end user it boils down to common data &amp; applications across all devices.&#160; And to simplify it even more, if our applications are common, the data can become part of the application.&#160; It is not necessary to split our executable apart from our data files, the two can just co-exist in the same corner of the internet.&#160; After this simplification is made it is much easier for us to move the entire mess into the cloud, instead of worrying about which portions are stored locally as opposed to remotely, and how to synchronizes the changes between the application and data between those stores.&#160; This is even compounded when you think about all of the different devices we interact with on a daily basis, PCs at home and work, laptops, MP3 players, mobile phones, netbooks, e-Books, etc…&#160; The user is feed up with the disparity between these devices and wants a simpler solution.&#160; We as an industry of developers and consumers are dreaming of a ubiquitous environment where data and applications seamlessly follow us around.&#160; Where we can leave the office at the end of the day and open our phones on the train home, and have our RSS readers&#160; remember the location of the article we were last reading or have our media players continue playing your favorite song at the spot you paused it on the PC at work.</p>
<p>It is up to us as developers to make this happen.&#160; So what do we need to do as an industry to make this happen?&#160; Well the big players (Apple, Google, and Microsoft) in the game are doing everything they can to be the first and best to the destination.&#160; What is the destination you ask?&#160; RUA or Rich Ubiquitous Applications not just Rich Internet Applications, but applications that exist everywhere! It is the holy grail of applications and something we have been chasing after for almost a decade.&#160;&#160; The platforms are getting closer and we are approaching the browser wars of the current technical generation.&#160; So let’s spend some time looking at the big three, where they are currently, how they are entering the RUA space, what is at stake for them, and how they can help us succeed. </p>
<p><strong>Apple</strong></p>
<p>Apple is a hardware company.&#160; Their business model is to sell hardware devices.&#160; Mac OS X, iTunes, the app store, are all complimentary products and services to help sell more Apple devices.&#160; Apple does an excellent job creating an ecosystem of Apple devices and services that when paired together solve many complicated issues for the typical consumer.&#160; iPod and iTunes are the best example in this case, it just works.&#160; But try to integrate a non Apple product with Apple services or software, good luck!&#160; When was the last time you saw Mac OS X running on a Dell PC or a non iPhone synching with iTunes.&#160; Oh wait, the Palm Pre worked, <a href="http://www.engadget.com/2009/07/30/editorial-palm-itunes-and-the-ties-that-dont-bind/" target="_blank">sorta, well, kinda… doh Apple killed it</a>.</p>
<p>Apple currently has the will of the consumer.&#160; They are dominating the mobile space, the iPhone’s trendiness and ease of use has made it the most popular smart phone in the world.&#160; The addition of the mobile application store and developer APIs pushed them out of the consumer gadget space and into the platform space.&#160; Their next big push towards RUA would be to modify the Apple platform to allow those same applications to easily exist on the Mac OS as well.&#160; Think about it, as a crossword game or Twitter Client developer, it would be great to be able to develop the application once to work seamlessly on both the, iPhone, iTouch, and Mac Book Pro.&#160; Data could then be stored and shared through the cloud or an apple synch service.&#160; What would this take? I’m not sure, I’m not an iPhone or Mac developer, but even if you had to emulate the iPhone on Mac OS, you’d still be headed in the right direction. <a href="http://calacanis.com/2009/08/11/apples-master-plan-and-why-even-fanboys-should-be-scared/" target="_blank">Jason Calicanis</a> pointed out in a recent email that the “Apple Tablet”&#160; may be the intermediary step.&#160; </p>
<p>Apple’s other option, and one they should have recognized over 2 years ago, is to utilize their strong relationship with Adobe.&#160; Apple should have, and still could, work closely with Adobe to improve Flash/AIR and make it the default application platform for the iPhone.&#160; I can only guess numbers, but at the time of the iPhone’s app store release there had to be at least 20 Flash developers for every objective C developer.&#160; Not to mention the existing tool support, training courses, and communities already dedicated to the Flash platform.&#160; It isn’t too late for Apple to enter the RUA space from this angle, but it would involve screwing over their developers once again, but like the x86 switch, the end goal would be Apple’s best bet.</p>
<p>Previously I had mentioned that Apple had the will of the consumer.&#160; Their consumer base is huge and the appStore is hip.&#160; For the average consumer the iPhone and app store are the only players in the game.&#160; But as technologists and developers we have begun to turn on Apple.&#160; Apple’s recent political actions have left many resilient, bitter, and even broke.&#160; Apple’s closed platform has made it easy for consumers but shunned developers.&#160; While having never been rejected by the app store, developed a single iPhone app, or even own an iPhone, it is easy to relate with developers who have labored hundreds or thousands of hours over their pride and joy just to get rejected because of a business reason.&#160;&#160; If Apple is to make it in the RUA space, they have more than technical challenges to overcome.&#160; They have to get over themselves, let their egos go, and share their toys with the other kids on the playground, or they just might get beat. </p>
<p><strong>Google</strong></p>
<p>Google is an advertising company.&#160;&#160; Their business model is to sell advertisements to companies and deliver high success rates for those ads.&#160; Since day 1, Google’s main objective has been to collect as much information about you as possible and use that data to deliver the most targeted advertising to you anywhere, anytime.&#160; They have expanded their advertising empire beyond search into every corner of the web: maps, images, email, instant messaging, the list goes on&#8230; All in an effort to capture more information about your interests and keep your eye balls on their web pages allowing them to display a greater number of ads to you.&#160; Google will partner with developers and other companies if it gives them additional data on consumer habits or keeps your eyes on their pages longer.&#160; </p>
<p>Google has the will of the technoraties.&#160; Their open platforms and “do no evil” attitude has attracted thousands of technologists scorned by Microsoft and Apple to their open source utopia.&#160; Google is willing to share their source code after all they just want the data and advertisement clicks.&#160; Google has expanded from the internet onto the mobile platform with Android and has been tip-toeing their way on the desktop with their browser, Chrome, and now recent rumor of a cloud OS.&#160; Google has invested everything on their web services, all of which implemented on current web standards.&#160; They have been advocates for web standards such as HTML, ECMAScript (javascript) and CSS since the beginning.&#160; Their message has been that web standards are&#160; ‘for the greater good of the web’, but in reality they want it because it makes their lives easier. In general widely adopted standards do make our lives easier.&#160; But as Google’s services got more advanced and their customers started to demand more, Google quickly reached the limits of the current standards and implementations of those standards.&#160; </p>
<p>What was Google to do? Release their own browser of course.&#160; They have marketed it as the fast, standards compliant browser that it is, but it is also something else very important.&#160; Chrome is Google’s leverage to deliver richer applications on the web and the desktop.&#160; Google can now push new browser features (standards compliant or otherwise) forward instead of waiting for the current browsers to deliver new functionality.&#160; Google has it sights set on one major web technology, HTML5.&#160; Why is HTML5 so important too Google?&#160; It is their channel into the RUA space.&#160; HTML5 will allow Google’s Apps to run on your desktop in an occasionally connected manor.&#160; Google has had their eye on HTML5 for a while and it’s obvious when you look at the the working draft of the <a href="http://dev.w3.org/html5/spec/Overview.html" target="_blank">HTML5 Spec</a> on W3C.&#160; <a href="http://en.wikipedia.org/wiki/Ian_Hickson" target="_blank">Ian Hickson</a>, a Google employee, is the lead editor.&#160; With the lead editor on the HTML5 Spec and a new browser, Google can drive “web standards “ to suit them best.&#160; HTML5 is Google’s RUA Space and when implemented by browsers, desktops &amp; mobile phones will be a compelling choice once again.</p>
<p><strong>Microsoft</strong></p>
<p>Microsoft is a software company.&#160; While Microsoft does seem to get involved in every possible technical space their primary object and source of revenue is still based on the number of Windows, Office, and server product licenses sold.&#160; As everyone knows they have grown to be the big player, and with that are also regarded as the bad guy, the monopolist, the Borg, etc… Heck, ever seen Antitrust? A movie was even made taking shots and Microsoft.&#160; All of which was at some point justified.&#160; Microsoft grew to large for it own good, and did some very uncompetitive things.&#160; As a teenager I was one of those kids with a website, bashing MS with a head shot of Bill Gates altered to look like a Borg member, been there done that.&#160; But recently Microsoft has been learning.&#160; Leaders within the company such as Ray Ozzie and Scott Guthrie have been promoting openness. </p>
<p>Microsoft has the will of the business developer.&#160; As a full time developer, Microsoft appeals to us because of their incredible development tools, easy to implement APIs and continued innovation in the way we develop software.&#160; Microsoft’s has hundreds, possibly thousands, of developers whose sole purpose is to make it easier for other developers to develop and deliver software on the Microsoft platform.&#160; Every MS product has an API, documentation, and Microsoft managed message forums all to help the developer succeed.&#160; Microsoft’s platform sweet spot is .NET development the Windows operating system.&#160; Thousands of internal business development teams use Visual Studio to create applications which run the software of our lives. Insurance agencies, hospitals, your bank, etc… </p>
<p>Microsoft also sees the day were applications will move beyond the desktop.&#160; Their approach is to embrace the desktop development experience they are so good at and expand it unto other devices.&#160; Silverlight is just that.&#160; Silverlight allows .NET developers to deliver stateful, rich, data driven interactive applications on the web and the desktop.&#160; Silverlight 3 uses the same languages, similar APIs, and class libraries that the .NET &amp; WPF developer is used to seeing.&#160; It is designed with security upfront to mitigate risks we encounter every day with browsers, cross site scripting, and ActiveX controls.&#160; People say that Silverlight is a Flash competitor but it is more than that, it is in the infancy of a platform that will compete with HTML, Windows desktop applications and mobile applications.&#160; </p>
<p>Silverlight is a media, graphics, and application platform which will continue to grow and provide additional features as fast as Microsoft can deliver and developers can implement them.&#160; Silverlight is on a one year development cycle for the foreseeable future.&#160; With the initial release of Silverlight in September 2007 and Silverlight 3 releasing in July 2009, they are even beating that target.&#160; Microsoft is investing many resources into making Silverlight the dominate RUA platform.&#160; They are making strategic partnerships with Netflix, Blockbuster, NBC, MLB, and the International Olympic Committee.&#160; They are working with Nokai to include Silverlight on the Symbian phone and Novell to create a release for Linux.&#160; (Silverlight is already supported by Microsoft on the Mac.)</p>
<p>Silverlight is not only a platform development tool intended for us developers, but Microsoft’s go-to platform for delivering their own software and services in the future.&#160;&#160; They are improving on and rewriting their online services using Silverlight.&#160; Recently they&#8217;ve announced brining Office to the web using Silverlight, which is one of the best strategic moves possible to ensure Silverlight’s platform success and to maintain Office’s dominance as the productivity suite.&#160; The final goal should be one where they could replace the native Office implementation for a Silverlight only version.&#160; Reducing costs, maintenance, and helping to deliver a cohesive product across all platforms.</p>
<p>Silverlight 3 introduced offline &amp; disconnected applications which allows users to install the Silverlight application to their local machines and run them while offline.&#160; This was a big step towards a RUA platform.&#160; They are missing one key component though and it may be their greatest mistake, even greater than&#160; Vista’s poor release.&#160; That is Silverlight on the mobile.&#160; Microsoft must release Silverlight to the mobile platform within the next 8 months, or risks losing the market entirely to Apple and Google.&#160; Silverlight on the Mobile phone isn’t the fault of the Silverlight team, but the Windows mobile team.</p>
<p>Microsoft’s entire mobile platform is a mess.&#160; Too many devices, poor implementations on many of those devices, partners rebranding and drastically changing the functionality of the device, etc… The current Windows Mobile 6.1 release is terribly slow on most devices, and developed for user experiences envisioned 10+ years ago.&#160; Windows Mobile 7 which was initially scheduled to be released in 2009 has been pushed back into 2010.&#160; Because of this Microsoft frantically tried to add some incremental updates to 6.1 by releasing 6.5, which is yet to see any production devices available in the US.&#160; Maybe it’s time for <a href="http://www.microsoft.com/presspass/exec/ssinofsky/" target="_blank">Steven Sinofsky</a>, previously in charge of Office and current President of the Windows Division, to make his mark on the Windows Mobile 7 team.&#160; </p>
<p>*Side note: Sinofsky saved Windows 7 from Vista, he was widely regarded within Microsoft as someone who delivers products and for 7 years he delivered Office products on time and with high levels of customer satisfaction.&#160; With Windows 7, he maintained that same reputation, and delivered an amazing product ahead of schedule.</p>
<p>Once Silverlight is available on the mobile phone Microsoft has to add some fairly important incremental features quickly.&#160; The first being integrated support for sensors, location services, and other similar devices.&#160; The most important being GPS functionality, followed by access to digital cameras, microphones, accelerometers, light sensors, etc… The Silverlight sandbox is a great technological improvement over .NET’s security model, but it is constraining developers from delivery highly integrated apps on a single cohesive platform.&#160; </p>
<p><strong>In Summary</strong></p>
<p>The big 3 in the game each have several large obstacles to tackle, before they are positioned to dominate.&#160; But before one stands out as victor the playing field will approach equality.&#160;&#160; Each will have a browser, an operating system and a mobile device to deliver applications through.&#160; They will all be using different development tools, languages, and APIs to deliver those experiences, but the end goal is the same.&#160; The ubiquitous application.</p>
<p>The players are laying down the chips, digging in and preparing for the next great technical war, following the operating system wars of the 80’s, the browser war of the 90’s and mobile device wars of the new millennium.&#160; As independent developers, we act as mercenaries in the upcoming battles helping to acquire market share with the applications and services we chose to deliver, and encouraging our users to embrace the platforms we have chosen to deliver through.&#160; Have you chosen a platform? Why? </p>
<p>Overall, I am anxious for the next generation of applications and where they will go.&#160;&#160; The future is a better more connected platform to deliver the applications we depend on now.&#160; But the road won’t be easy and with most battles those that suffer most are the civilians, or in our case the users.&#160; There will have to make choices and with those choices will come unexplained consequences.&#160; All because they are caught in the next futile battle for world supremacy.&#160;&#160; </p>
<p>There is a solution though.&#160; It’s one of my favorites and one we have revisited many times, it is a adaptation of David Wheeler’s famous quote, <em>“All problems in computer science can be solved by another level of [abstraction]”.</em>&#160; We need to develop a new SIMPLE standard which allows for RUA type platforms to be easily implemented on different consumer devices, regardless of form factor, operating system or connectivity.&#160; We need to embrace Silverlight, HTML5, and Flash/Flex, and Apples platform of choice as equal first class citizens in the next generation of the browser.&#160; The browser should be the new abstraction layer between the HTTP protocol, the file system, and devices connected or integrated on the local machine.&#160; A standard that allows users to seamlessly view and integrate an application written in Silverlight with one that was developed in objective C designed to run on the Mac.&#160; Such a standard would be a great undertaking, but a necessary one to provide the experience our consumers deserve.&#160; </p>
<p>So, I guess it wasn’t that hard to express some of my less concrete technical thoughts.&#160; Too bad I can’t compile the post and run a few unit tests to ensure it communicates my ideas as intended.&#160; I guess I will have to revert to a simpler mechanism and hope for feedback from others. <img src='http://heyse.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;submitHeadline=The+Applications+of+our+Future&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;title=The+Applications+of+our+Future" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;title=The+Applications+of+our+Future" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;title=The+Applications+of+our+Future" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;title=The+Applications+of+our+Future" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229&amp;title=The+Applications+of+our+Future" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+The+Applications+of+our+Future+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D229" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=229</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Microsoft SharedView on Windows 7 x64 Beta Build 7000</title>
		<link>http://heyse.us/blog/?p=93</link>
		<comments>http://heyse.us/blog/?p=93#comments</comments>
		<pubDate>Fri, 30 Jan 2009 05:05:00 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:7295</guid>
		<description><![CDATA[We use Microsoft SharedView a lot at Catalyst.&#160; Is a quick, free tool which allows us to do desktop sharing.&#160; Yesterday one of my co-workers sent me an invitation to join a session.&#160; I followed the link in the email which allowed me to download and install SharedView. When I attempted to install, I was [...]]]></description>
			<content:encoded><![CDATA[<p>We use <a href="http://www.microsoft.com/downloads/details.aspx?familyid=95AF94BA-755E-4039-9038-63005EE9D33A&amp;displaylang=en">Microsoft SharedView</a> a lot at Catalyst.&nbsp; Is a quick, free tool which allows us to do desktop sharing.&nbsp; Yesterday one of my co-workers sent me an invitation to join a session.&nbsp; I followed the link in the email which allowed me to download and install SharedView. When I attempted to install, I was presented with this message:</p>
<p><a href="http://heyse.us/blog/wp-content/uploads/SharedViewError_7B4CC3E2.png"><img src="http://heyse.us/blog/wp-content/uploads/SharedViewError_thumb_4B427261.png" style="border-width:0px;display:inline;" title="SharedViewError" alt="SharedViewError" width="437" border="0" height="336"></a> </p>
<p>This forced me to resort back to my Vista partition which didn’t make me happy.&nbsp; I’ve been extremely happy living in my Windows 7 world and I didn’t want to leave just to use SharedView.&nbsp; I took a quick minute this evening to dig deeper into the issue.&nbsp; I downloaded a copy of <a href="http://support.microsoft.com/kb/255905">Microsoft Ocra</a>, which allows you to edit the MSI database.&nbsp; When I checked out the installation conditions the problem was clear. The conditional statement below was used several times.&nbsp; It seems that SharedView is forward compatible as long as you are running the 32 bit version of Windows XP or greater, but only valid if you are running Vista x64.</p>
<p>NOT(((NOT VersionNT64) AND VersionNT&gt;=501) OR (VersionNT64 AND VersionNT = 600))</p>
<p><a href="http://heyse.us/blog/wp-content/uploads/orcas_705FBCCD.png"><img src="http://heyse.us/blog/wp-content/uploads/orcas_thumb_34537B18.png" style="border-width:0px;display:inline;" title="orcas" alt="orcas" width="496" border="0" height="312"></a></p>
<p>I modified the conditions to allow for forward compatibility saved and tried to re-install again.&nbsp; Success!&nbsp; I am attaching a copy of the modified MSI, but with the following disclaimer.</p>
<p>DISCLAIMER:&nbsp; I am attaching this as an example of how to modify an MSI to allow for forward compatibility not for you to install it.&nbsp; If you choose to install it anyway, I am not responsible for what happens to your system.&nbsp; By downloading the following attachment you agree to this disclaimer.</p>
<p> Download:
<div style="margin:0px;padding:0px;display:inline;float:none;" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:160c0969-241f-4b6e-9a9c-7535076f8f12" class="wlWriterEditableSmartContent">
<p> <a href="http://heyse.us/blog/wp-content/uploads/Windows7_SharedView_314BAAA8.msi" target="_blank">Windows7_SharedView</a></p>
</div>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;submitHeadline=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;title=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;title=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;title=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;title=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93&amp;title=Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Microsoft+SharedView+on+Windows+7+x64+Beta+Build+7000+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D93" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=93</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IIS 401 Error Using Windows Auth Locally</title>
		<link>http://heyse.us/blog/?p=94</link>
		<comments>http://heyse.us/blog/?p=94#comments</comments>
		<pubDate>Fri, 23 Jan 2009 03:35:00 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[IIS7]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:7215</guid>
		<description><![CDATA[Today, Chris came to me with one of those WTF issues… He is developing a SharePoint application which communicates with WCF services hosted in a separate IIS Web Site on the same physical machine.&#160; Both websites are bound to the same IP Address and are using host headers to distinguish themselves. Also, both Web Sites [...]]]></description>
			<content:encoded><![CDATA[<p>Today, Chris came to me with one of those WTF issues… He is developing a SharePoint application which communicates with WCF services hosted in a separate IIS Web Site on the same physical machine.&#160; Both websites are bound to the same IP Address and are using host headers to distinguish themselves. Also, both Web Sites disallow anonymous access and enforce Windows Authentication.&#160; Chris was working on deploying his services and invoking them from the SharePoint site.&#160; He first tested the services from his local dev machine and everything worked.&#160; When he published the code to the SharePoint instance on server the code was failing with a HTTP 401.1 error.&#160; Invalid credentials…</p>
<p>To get the root of the problem we created a simple HTML file and placed it in the root of the directory.&#160; We were still getting the same error.&#160; The next step was to enable logging in IIS which provided us with a little more information, including the exact error 401.1 / 2148074252.&#160; After some head scratching and googling, we ran across this knowledge base article <a href="http://support.microsoft.com/kb/896861">KB896861</a>.&#160; A quick modification to the registry, a reset and we were back in business.&#160; </p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;submitHeadline=IIS+401+Error+Using+Windows+Auth+Locally&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;title=IIS+401+Error+Using+Windows+Auth+Locally" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;title=IIS+401+Error+Using+Windows+Auth+Locally" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;title=IIS+401+Error+Using+Windows+Auth+Locally" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;title=IIS+401+Error+Using+Windows+Auth+Locally" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94&amp;title=IIS+401+Error+Using+Windows+Auth+Locally" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+IIS+401+Error+Using+Windows+Auth+Locally+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D94" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Beta (Build 7000) available for MSDN Subscribers</title>
		<link>http://heyse.us/blog/?p=95</link>
		<comments>http://heyse.us/blog/?p=95#comments</comments>
		<pubDate>Thu, 08 Jan 2009 06:08:27 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:7065</guid>
		<description><![CDATA[Today at CES Microsoft&#8217;s Steve Ballmer (yes, the chair thrower) announced that they will be making the Windows 7 Beta available for download on January 9th.&#160; The Windows team said to watch their RSS feed for the release notice and download instructions.&#160; Being the optimistic type I decided to check out the MSDN subscription site [...]]]></description>
			<content:encoded><![CDATA[<p>Today at CES Microsoft&#8217;s Steve Ballmer (yes, the chair thrower) <a href="http://www.microsoft.com/presspass/events/ces/">announced</a> that they will be making the Windows 7 Beta available for download on January 9th.&#160; The Windows team said to watch their <a href="http://windowsteamblog.com/blogs/MainFeed.aspx">RSS feed</a> for the release notice and download instructions.&#160; Being the optimistic type I decided to check out the MSDN subscription site and there it was Windows 7 Beta (builds x86 and x64).&#160; It looks like the download is going to take roughly 1 hour.&#160; Looks like it is going to be a long installation night.&#160; With some luck, I will be giving my ASP.NET Dynamic Data Presentation at IndyNDA on a newly build Windows 7 build.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;submitHeadline=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;title=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;title=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;title=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;title=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95&amp;title=Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Windows+7+Beta+%28Build+7000%29+available+for+MSDN+Subscribers+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D95" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=95</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSDN Developer Conference</title>
		<link>http://heyse.us/blog/?p=96</link>
		<comments>http://heyse.us/blog/?p=96#comments</comments>
		<pubDate>Tue, 06 Jan 2009 06:19:06 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:7067</guid>
		<description><![CDATA[The MSDN Developer Conference is just around the corner (see event details below).&#160; The MSDN Developer Conference brings the best of PDC 2008 to Chicago.&#160; The event has 3 different tracks covering Cloud Services, Presentation, and Developer Tools.&#160; The speakers for the events are mostly Microsoft evangelists with several community members.&#160; I am extremely happy [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://www.msdndevcon.com/Pages/Chicago.aspx">MSDN Developer Conference</a> is just around the corner (see event details below).&#160; The MSDN Developer Conference brings the best of PDC 2008 to Chicago.&#160; The event has 3 different tracks covering Cloud Services, Presentation, and Developer Tools.&#160; The speakers for the events are mostly Microsoft evangelists with several community members.&#160; I am extremely happy to say that I will be one of those community speakers.&#160; I will be co-presenting with Patrick Foley, an Architectural Evangelist with Microsoft on Developing Line of Business Applications in Silverlight.&#160; When not presenting, I will be hanging out around the open spaces area.</p>
<p><strong>Location</strong> </p>
<p>Hyatt Regency Chicago   <br />151 East Wacker Drive    <br />Chicago, IL, 60601</p>
<p><strong>Date</strong></p>
<p>January 13th 2009</p>
<p><strong><a href="https://www.blueroosteronline.com/events/msdndevcon/chicago">Register</a></strong></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;submitHeadline=MSDN+Developer+Conference&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;title=MSDN+Developer+Conference" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;title=MSDN+Developer+Conference" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;title=MSDN+Developer+Conference" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;title=MSDN+Developer+Conference" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96&amp;title=MSDN+Developer+Conference" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+MSDN+Developer+Conference+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D96" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation: ASP.NET Dynamic Data @ IndyNDA</title>
		<link>http://heyse.us/blog/?p=97</link>
		<comments>http://heyse.us/blog/?p=97#comments</comments>
		<pubDate>Mon, 29 Dec 2008 06:07:35 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Dynamic Data]]></category>
		<category><![CDATA[Speaking]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:7066</guid>
		<description><![CDATA[While at PDC, Dan Rigsby, invited me down to give a presentation and IndyNDA.&#160; I thought that this would be an excellent opportunity to talk about my favorite feature in .NET 3.6 SP1, ASP.NET Dynamic Data.&#160; I plan to make this presentation extremely code based and create a web site based on the AdventureWorks database.&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>While at PDC, Dan Rigsby, invited me down to give a presentation and <a href="http://indynda.org/">IndyNDA</a>.&#160; I thought that this would be an excellent opportunity to talk about my favorite feature in .NET 3.6 SP1, ASP.NET Dynamic Data.&#160; I plan to make this presentation extremely code based and create a web site based on the AdventureWorks database.&#160; The abstract for the presentation is located below, along with details on the event.&#160; I will be posting the power point slides and code samples here, after the presentation.</p>
<h4>Presentation Abstract</h4>
<p>ASP.NET Dynamic Data is a new framework released with the .NET Framework 3.5 SP1 that lets you create data-driven ASP.NET Web applications easily. It does this by automatically discovering data-model metadata at run time and deriving UI behavior from it.&#160; A scaffolding framework provides a functional Web site for viewing and editing data. You can easily customize the scaffolding framework by changing elements or creating new ones to override the default behavior.&#160; Come see how ASP.NET Dynamic Data can drastically reduce development time, while still giving you the flexibility necessary to create rich data driven web applications.</p>
<h4>Meeting Time &amp; Location</h4>
<p>Date: January 8th, 2009   <br />Time: 6:00 pm</p>
<p>Doors open at 5:30pm and the meeting starts at 6:00pm. Everyone is welcome to join us, and the admission is free. Presentations are targeted towards developers and IT professionals. </p>
<p>Thanks to our sponsors, we will again be having <b><i>FREE PIZZA and cokes</i></b> beginning at 5:30 (while supplies last). </p>
<p>Location:</p>
<p>The Gene B. Glick Junior Achievement Education Center    <br />7435 North Keystone Ave    <br />Indianapolis, IN 46240</p>
<p><a href="http://indynda.org/Directions/tabid/478/Default.aspx">Map and directions</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;submitHeadline=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;title=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;title=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;title=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;title=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97&amp;title=Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Presentation%3A+ASP.NET+Dynamic+Data+%40+IndyNDA+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D97" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=97</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Miniblog: Nerd Humor</title>
		<link>http://heyse.us/blog/?p=98</link>
		<comments>http://heyse.us/blog/?p=98#comments</comments>
		<pubDate>Tue, 04 Nov 2008 21:04:36 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:4607</guid>
		<description><![CDATA[So, I was just talking to one of my coworkers over IM and we were discussing WCF.&#160; During the conversation I said:
Josh Heyse: programming WCF for 90% of developers is just interfaces and classes marked with ServiceContract and DataContract   Josh Heyse: the rest is in the configuration    Josh Heyse: and [...]]]></description>
			<content:encoded><![CDATA[<p>So, I was just talking to one of my coworkers over IM and we were discussing WCF.&#160; During the conversation I said:</p>
<p>Josh Heyse: programming WCF for 90% of developers is just interfaces and classes marked with ServiceContract and DataContract   <br />Josh Heyse: the rest is in the configuration    <br />Josh Heyse: and if you&#8217;re a huge nerd you&#8217;ll get that pun</p>
<p>Made me smile and figured others might enjoy it as well. <img src='http://heyse.us/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;submitHeadline=Miniblog%3A+Nerd+Humor&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;title=Miniblog%3A+Nerd+Humor" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;title=Miniblog%3A+Nerd+Humor" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;title=Miniblog%3A+Nerd+Humor" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;title=Miniblog%3A+Nerd+Humor" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98&amp;title=Miniblog%3A+Nerd+Humor" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Miniblog%3A+Nerd+Humor+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D98" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=98</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VSTS User Group Presentation &#8211; VSTS for Database Developers</title>
		<link>http://heyse.us/blog/?p=99</link>
		<comments>http://heyse.us/blog/?p=99#comments</comments>
		<pubDate>Sat, 18 Oct 2008 14:29:03 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Application Lifecycle Management]]></category>
		<category><![CDATA[Speaking]]></category>
		<category><![CDATA[TFS]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:4365</guid>
		<description><![CDATA[I&#8217;ll be presenting at the Visual Studio Team System User Group next month on the features Visual Studio Database Edition provides and how it makes developers more productive.&#160; Recently Microsoft announced it would combine VSTS Database and VSTS Developer since most developers also interact with the Database.&#160; I think this is an extremely smart move [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be presenting at the Visual Studio Team System User Group next month on the features Visual Studio Database Edition provides and how it makes developers more productive.&#160; Recently Microsoft announced it would combine VSTS Database and VSTS Developer since most developers also interact with the Database.&#160; I think this is an extremely smart move on their part because it allows developers to build databases better.&#160; I will be presenting at the Chicago Loop meeting and <a target="_blank" href="http://phacker.wordpress.com/">Paul Hacker</a> will be presenting in Downers Grove.</p>
<h3>Official Announcement</h3>
<p>On September 29, 2008, Microsoft announced that <b><u>Visual Studio Team System Development Edition will be combined with the Visual Studio Team System Database Edition</u> </b>in Visual Studio Team System 2010.&#160; Microsoft recognized that many developers write front end code in addition to working deeply with database code and database tables. Bringing the feature of Team Development Edition and Team Database Edition together sets together enables you to take advantage of the core tools for application development as well as the necessary tools for database development, including performance profiling, code analysis, code metrics, code coverage, database refactoring, Schema Compare, Data Compare, and more.&#160; You may also be happy to know there is a way to take advantage of this 2 for 1 deal <b><u>TODAY</u></b>.&#160; Really, no joke!</p>
<p>Want to hear more about it?&#160; Maybe even see these two incredibly powerful tools together?&#160; Join the <strong>Chicago Visual Studio Team System User Group</strong> to hear more about how to get your hands on this awesome duo of tools, talk to field experts about how these tools have improved their overall quality of life (OK, maybe just their work environment), and to see them in action!.&#160; We have decided to hold this session in <b>both the Chicago Loop and Downers Grove offices</b> to ensure everyone has a chance to learn about this terrific new opportunity.</p>
<p><b>To sign up, please email <a href="mailto:Laskowski.Dave@gmail.com">Laskowski.Dave@gmail.com</a>. Please indicate which meeting you plan to attend.</b></p>
<p><b>Meeting Agenda     <br /></b>5:30pm &#8211; Pizza     <br />6:00pm &#8211; Introductions    <br />6:15pm &#8211; Presentation and Demo    <br />7:30pm &#8211; Q&amp;A and Raffle </p>
<p><b>Chicago Loop Meeting Details:     <br /></b>Wednesday <b>November 5<sup>th</sup></b>, 2008    <br />77 West Wacker Drive, 23<sup>rd</sup> Floor, Chicago, IL    <br /><b><a href="http://maps.live.com/?mkt=en-us#JnE9eXAuNzcrdyt3YWNrZXIrZHJpdmUlMmMrY2hpY2FnbyUyYytpbCU3ZXNzdC4wJTdlcGcuMSZiYj01OS4xMzA4NjMwOTcyNTU5JTdlLTQzLjY4MTY0MDYyNSU3ZTE2LjY5MDkyMTE0NDM5MTclN2UtMTMxLjY2MDE1NjI1">Map</a></b></p>
<p><b></b></p>
<p><b>Downers Grove Meeting Details:     <br /></b>Wednesday <b>October 29<sup>th</sup></b>, 2008    <br />3025 Highland Parkway, 3<sup>rd</sup> Floor, Downers Grove IL    <br /><b><a href="http://maps.live.com/?mkt=en-us#JnE9eXAuMzAyNStoaWdobGFuZCtwYXJrd2F5JTJjK2Rvd25lcnMrZ3JvdmUlMmMraWwlN2Vzc3QuMCU3ZXBnLjEmYmI9NDEuODk2NTI3MzU3NjI0MSU3ZS04Ny42MDkwNTc0MjY0NTI2JTdlNDEuODc1ODc2OTM1OTM0MyU3ZS04Ny42NTIwMTU2ODYwMzUy">Map</a></b></p>
<p><b>Speaker Bios:</b></p>
<p><b>(Downers Grove)     <br /></b>Paul Hacker is a Principle Consultant at Polaris Solutions, LLC in Indianapolis, with a passion for Team System. He has been working with the product since beta 3. Paul has implemented Team System/TFS in numerous organizations. When not spending time with his family, you can find him presiding over the Indianapolis TFS SIG, Podcasting on Radio TFS or writing tools to enhance Team System. You can reach Paul at <a href="mailto:paul.hacker@polarissolutions.com">paul.hacker@polarissolutions.com</a></p>
<p><b>(Chicago Loop)     <br /></b>Josh Heyse is a Senior Solution Architect with Catalyst Software Solutions. He has always focused on staying ahead of the technology curve, investigating Microsoft technologies before they are available to the general public. Josh began developing on beta versions the .NET Framework when they were released in early 2001. Josh is currently focused on WPF, LINQ, and most recently Silverlight 2.0.&#160; As an architect Josh spends a lot of time improving the software development lifecycle by implementing pattern &amp; practices, continuous integration and ALM tools such as Team Foundation Server. MCSD, MCDBA, MCPD</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;submitHeadline=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;title=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;title=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;title=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;title=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99&amp;title=VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+VSTS+User+Group+Presentation+%26%238211%3B+VSTS+for+Database+Developers+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D99" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=99</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Data Filtering &#8211; Table Text Search</title>
		<link>http://heyse.us/blog/?p=100</link>
		<comments>http://heyse.us/blog/?p=100#comments</comments>
		<pubDate>Sat, 18 Oct 2008 00:11:38 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Dynamic Data]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:4357</guid>
		<description><![CDATA[I&#8217;m pretty happy with the number of people who have been downloading and trying out Dynamic Data Filtering.&#160; On average there are about 20 downloads a day with around 50 page views.&#160; There has been a lot of good feedback on both the ASP.NET forums and on the CodePlex project site 5over the last week [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m pretty happy with the number of people who have been downloading and trying out Dynamic Data Filtering.&#160; On average there are about 20 downloads a day with around 50 page views.&#160; There has been a lot of good feedback on both the <a target="_blank" href="http://forums.asp.net/1145.aspx">ASP.NET forums</a> and on the <a target="_blank" href="http://www.codeplex.com/DynamicDataFiltering">CodePlex</a> project site 5over the last week or so.&#160; So much actually that I am having trouble keeping up with answering the questions coming in.&#160; </p>
<p>One question did catch my eye though.&#160; It was a member of the ASP.NET forum asking about being able to search on all of the columns within a given table.&#160; <a target="_blank" href="http://forums.asp.net/p/1330264/2690228.aspx">[View the Post]</a>&#160; Dynamic Data doesn&#8217;t support this functionality out of the box, but it is flexible enough to write something yourself to do it.&#160; The main things that makes this possible is that a single FilterTemplate can return one ore more DynamicFilterParameters which produce lambda predicates. </p>
<p>In this case, you can accomplish this logic of searching multiple columns in a table by saying where ProductName LIKE [Value] or ProductNumber LIKE [Value] etc&#8230;&#160; To accomplish this in Dynamic Data Filtering you would utilize the OrExpressionParameter to create a collection of LikeExpressionParameters to do the predicate for each individual column.</p>
<p>I spent a little time creating a simple example which performs this logic.&#160; I also implemented a Columns property which allows you to specify using a comma separated list the columns you want searched.&#160; If Columns is left null or empty all columns are searched.&#160; The aspx for the user control only contains a single asp:TextBox with the Id=TextBox1.</p>
<div class="codeblock">
<pre style="margin:0px;"><span style="color:blue;">public</span> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> <span style="color:#2b91af;">TableTextSearch</span> : Catalyst.Web.DynamicData.<span style="color:#2b91af;">FilterTemplateUserControlBase</span></pre>
<pre style="margin:0px;">{</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">public</span> <span style="color:blue;">string</span> Columns { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">private</span> <span style="color:#2b91af;">MetaTable</span> Table</pre>
<pre style="margin:0px;">&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">get</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:#2b91af;">IDynamicDataSource</span> source = <span style="color:blue;">this</span>.FindDataSourceControl();</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">if</span> (source != <span style="color:blue;">null</span>)</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">return</span> source.GetTable();</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">return</span> <span style="color:blue;">null</span>;</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:#2b91af;">IEnumerable</span>&lt;<span style="color:#2b91af;">Parameter</span>&gt; GetWhereParameters(System.Web.DynamicData.<span style="color:#2b91af;">IDynamicDataSource</span> dataSource)</pre>
<pre style="margin:0px;">&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:#2b91af;">OrExpressionParameter</span> parameter = <span style="color:blue;">new</span> <span style="color:#2b91af;">OrExpressionParameter</span>();</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">string</span>[] cols = <span style="color:blue;">null</span>;</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">if</span> (!<span style="color:blue;">string</span>.IsNullOrEmpty(Columns))</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; cols = Columns.Split(<span style="color:#a31515;">','</span>);</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">for</span> (<span style="color:blue;">int</span> i = 0; i &lt; cols.Length; i++)</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; cols[i] = cols[i].Trim().ToUpper();</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">var</span> columns = (<span style="color:blue;">from</span> c <span style="color:blue;">in</span> Table.Columns</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">where</span> cols == <span style="color:blue;">null</span> || cols.Length == 0 || cols.Contains(c.Name)</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">group</span> c <span style="color:blue;">by</span> c.TypeCode).ToDictionary(g =&gt; g.Key, g =&gt; g);</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">foreach</span> (<span style="color:blue;">var</span> column <span style="color:blue;">in</span> columns[<span style="color:#2b91af;">TypeCode</span>.String])</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; parameter.Parameters.Add(<span style="color:blue;">new</span> <span style="color:#2b91af;">LikeExpressionParameter</span>()</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Type = <span style="color:#2b91af;">TypeCode</span>.String,</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Name = column.Name,</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Value = TextBox1.Text,</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Like = <span style="color:#2b91af;">LikeExpressionParameter</span>.<span style="color:#2b91af;">LikeType</span>.Contains</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; });</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">yield</span> <span style="color:blue;">return</span> parameter;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> LoadQueryStringParameters(System.Collections.Specialized.<span style="color:#2b91af;">NameValueCollection</span> parameters)</pre>
<pre style="margin:0px;">&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; TextBox1.Text = parameters[<span style="color:#a31515;">&quot;TableTextSearch&quot;</span>];</pre>
<pre style="margin:0px;">&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">public</span> <span style="color:blue;">override</span> System.Collections.Specialized.<span style="color:#2b91af;">NameValueCollection</span> SaveQueryStringParameters()</pre>
<pre style="margin:0px;">&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">return</span> <span style="color:blue;">new</span> <span style="color:#2b91af;">NameValueCollection</span>() { { <span style="color:#a31515;">&quot;TableTextSearch&quot;</span>, TextBox1.Text } };</pre>
<pre style="margin:0px;">&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">&#160;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">public</span> <span style="color:blue;">override</span> <span style="color:blue;">void</span> Clear()</pre>
<pre style="margin:0px;">&#160;&#160;&#160; {</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; TextBox1.Text = <span style="color:blue;">string</span>.Empty;</pre>
<pre style="margin:0px;">&#160;&#160;&#160; }</pre>
<pre style="margin:0px;">}</pre>
</div>
<p>To implement filters like this one you must use the DynamicFilterForm as opposed to the DynamicFilterRepeater.&#160; The reason is that the TableTextSearch filter control is associated with any column/property in particular but the entire table instead.&#160; It may make sense to allow the FilterAttribute to be annotated at the class level to address this.</p>
<div class="codeblock">
<pre style="margin:0px;"><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">DynamicFilterForm</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;DynamicFilterForm1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">DataSourceID</span><span style="color:blue;">=&quot;GridDataSource&quot;&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">FilterTemplate</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Search</pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;/</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; Keyword: </pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">dd</span><span style="color:blue;">:</span><span style="color:#a31515;">TableTextSearch</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;TableTextSearch&quot;</span> <span style="color:blue;">/&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">LinkButton</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LinkButton4&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">CommandName</span><span style="color:blue;">=&quot;Search&quot;&gt;</span>Search<span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">LinkButton</span><span style="color:blue;">&gt;</span><span style="color:red;">&amp;nbsp;&amp;nbsp;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">LinkButton</span> <span style="color:red;">ID</span><span style="color:blue;">=&quot;LinkButton5&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=&quot;server&quot;</span> <span style="color:red;">CommandName</span><span style="color:blue;">=&quot;Clear&quot;&gt;</span>Clear<span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">LinkButton</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span style="color:blue;">&lt;/</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;">&#160;&#160;&#160; <span style="color:blue;">&lt;/</span><span style="color:#a31515;">FilterTemplate</span><span style="color:blue;">&gt;</span></pre>
<pre style="margin:0px;"><span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">DynamicFilterForm</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>To build upon this example it would be nice to be able to search the DisplayText of foreign columns and potentially non text values.&#160; For example if the user entered a string which can be converted to a date, search all DateTime columns.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;submitHeadline=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;title=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;title=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;title=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;title=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100&amp;title=Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Dynamic+Data+Filtering+%26%238211%3B+Table+Text+Search+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D100" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=100</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Silverlight 2 At Last</title>
		<link>http://heyse.us/blog/?p=101</link>
		<comments>http://heyse.us/blog/?p=101#comments</comments>
		<pubDate>Tue, 14 Oct 2008 10:03:27 +0000</pubDate>
		<dc:creator>jheyse</dc:creator>
				<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">8849ae14-9cac-4852-9711-a9836a9b55b4:4306</guid>
		<description><![CDATA[After what seems like forever, Microsoft has released the final bits for Silverlight 2.&#160; The product has come an extremely long way since it&#8217;s code name of WPF/E and its formal introduction as Silverlight 1.1 during Mix 07.&#160; I am ecstatic about the concept of Silverlight and the RIA potential it brings developers.&#160; While my [...]]]></description>
			<content:encoded><![CDATA[<p>After what seems like forever, Microsoft has released the final bits for <a target="_blank" href="http://silverlight.net/">Silverlight 2</a>.&#160; The product has come an extremely long way since it&#8217;s code name of WPF/E and its formal introduction as Silverlight 1.1 during Mix 07.&#160; I am ecstatic about the concept of Silverlight and the RIA potential it brings developers.&#160; While my professional development roots started with the web, I&#8217;ve always felt that HTML &amp; Javascript based applications have always been a kludge.&#160; The stateless, scripted environment built on what started as a linkable document format quickly outgrew it&#8217;s original architecture. </p>
<p>Silverlight 2 brings us that green field development experience all developers dream of.&#160; The &quot;I could do this so much better only if I didn&#8217;t have to worry about &#8230;&quot; feeling we all get when digging into an existing code base.&#160; Now that Microsoft has released the technology it is up to us, the developer community, to start creating best practices around developing on this new technology.&#160; It is looking to be an excellent next year for Rich Internet Application space.</p>
<p><a target="_blank" href="http://timheuer.com/blog/">Tim Heuer</a> has an excellent <a target="_blank" href="http://timheuer.com/blog/archive/2008/10/14/silverlight-2-released-officially.aspx">blog post</a> on what you need to get started with Silverlight 2 development.&#160; On a very interesting side note, <a target="_blank" href="http://www.eclipse4sl.org/">Eclipse will have support for Silverlight 2</a>&#8230; cross browser, cross platform and cross IDE.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;submitHeadline=Silverlight+2+At+Last&amp;submitSummary=" rel="nofollow" title="Add to&nbsp;Buzz"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/buzz.png" title="Add to&nbsp;Buzz" alt="Add to&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;title=Silverlight+2+At+Last" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;title=Silverlight+2+At+Last" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.dotnetkicks.com/kick/?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;title=Silverlight+2+At+Last" rel="nofollow" title="Add to&nbsp;DotNetKicks"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/dotnetkicks.png" title="Add to&nbsp;DotNetKicks" alt="Add to&nbsp;DotNetKicks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101" rel="nofollow" title="Add to&nbsp;Facebook"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/facebook.png" title="Add to&nbsp;Facebook" alt="Add to&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;title=Silverlight+2+At+Last" rel="nofollow" title="Add to&nbsp;reddit"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/reddit.png" title="Add to&nbsp;reddit" alt="Add to&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101&amp;title=Silverlight+2+At+Last" rel="nofollow" title="Add to&nbsp;Stumble Upon"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Add to&nbsp;Stumble Upon" alt="Add to&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Silverlight+2+At+Last+@+http%3A%2F%2Fheyse.us%2Fblog%2F%3Fp%3D101" rel="nofollow" title="Add to&nbsp;Twitter"><img class="social_img" src="http://heyse.us/blog/wp-content/plugins/social-bookmarks/images/twitter.png" title="Add to&nbsp;Twitter" alt="Add to&nbsp;Twitter" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://heyse.us/blog/?feed=rss2&amp;p=101</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
