<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Obi Oberoi</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/default.aspx</link><description /><dc:language>en-CA</dc:language><generator>CommunityServer 1.1 (Build: 1.1.0.50615)</generator><item><title>DevTeach Ottawa (Nov. 2nd - 4th inclusive)</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/10/12/323.aspx</link><pubDate>Thu, 13 Oct 2011 01:03:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:323</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/323.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=323</wfw:commentRss><description>&lt;h2&gt;
	 &lt;/h2&gt;
&lt;p&gt;
	&lt;span&gt;Greetings Folks,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;Microsoft is excited to bring 19 Sessions to DevTeach from TechDays 2011. The sessions come from 7 focus areas including:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;Those of you who would like to avail a $100 discount (and why wouldn't you!), you could use the rebate code &lt;span&gt;&lt;strong&gt;T00000NTUG&lt;/strong&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span&gt;up until the day of the event. Is this a treat or what? :)&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;h2&gt;
			&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#155"&gt;Developer Practices &amp; Architecture&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
	&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#157"&gt;Developer Tools, Languages &amp; Frameworks&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#161"&gt;Communications &amp; Collaboration&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#161"&gt;Security, Identity &amp; Management&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#161"&gt;Virtualization&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#159"&gt;Data Platform&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.devteach.com/Session.aspx#158"&gt;Windows Client &amp; Phone&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	&lt;span&gt;TechDays 2011 sessions at DevTeach will address a multitude of topics like Building a Security Skeleton for your ASP.NET Applications, Application Development with HTML5, Migrating to Windows Server 2008 R2, What’s new in SQL Server Code-Named “Denali” and Building Your Own Private Cloud Infrastructure. For a full list of sessions and to see the abstracts, please visit the &lt;a href="http://www.devteach.com/wconnect/wc.dll?FournierTransformation~1,18,1,17"&gt;session listing&lt;/a&gt; and &lt;a href="http://www.devteach.com/wconnect/wc.dll?FournierTransformation~1,18,1,13"&gt;schedule&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;In order to the most out of your time at DevTeach Ottawa, we suggest you do the following prior to the presentations:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;Download or activate free trials of the software that we’ll be covering in the presentations, so you can try it out ahead of time:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/try?WT.mc_id=eml-c-ca-loc--"&gt;Visual Studio&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.asp.net/downloads?WT.mc_id=eml-c-ca-loc--"&gt;ASP.NET&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://www.microsoft.com/web/?WT.mc_id=eml-c-ca-loc--"&gt;WebMatrix&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/en-ca/evalcenter/gg678609.aspx?WT.mc_id=eml-c-ca-loc--"&gt;System Center Virtual Machine Manager 2012 RC&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/evalcenter/cc793138.aspx?WT.mc_id=eml-c-ca-loc--"&gt;System Center Virtual Machine Manager 2008 R2 SP1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/evalcenter/dd776191.aspx?WT.mc_id=eml-c-ca-loc--"&gt;Hyper-V Server 2008 R2 SP1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/evalcenter/dd459137.aspx?WT.mc_id=eml-c-ca-loc--"&gt;Windows Server 2008 R2 with SP1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/evalcenter/ee315247?WT.mc_id=eml-c-ca-loc--"&gt;SQL Server 2008 R2&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://technet.microsoft.com/evalcenter/hh225126.aspx?WT.mc_id=eml-c-ca-loc--"&gt;SQL Server Code Name “Denali” CTP3&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
	&lt;li&gt;
		&lt;span&gt;&lt;a href="http://go.microsoft.com/?linkid=9772716&amp;WT.mc_id=eml-c-ca-loc--"&gt;Windows Phone SDK 7.1&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
	&lt;span&gt;Visit the MSDN and TechNet sites to do some pre-reading on the latest news and information on the topics that will be covered.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;Looking forward to seeing you November 2nd to 4th in Ottawa!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;Obi /&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=323" width="1" height="1"&gt;</description></item><item><title>How to delete all stored procedures at once</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/10/09/322.aspx</link><pubDate>Sun, 09 Oct 2011 21:55:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:322</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/322.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=322</wfw:commentRss><description>&lt;p&gt;
	After manually deleting records, truncating the table and then dropping the table one at a time (being an old-fashioned and to some extent anal) I was left with a stack of stored procedures that I had to clean up as well.&lt;/p&gt;
&lt;p&gt;
	I was in no mood to go through dropping them one at a time, so here’s what I found to drop all stored procedures using a cursor:&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;&lt;u&gt;Method 1.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;declare&lt;/font&gt;&lt;font color="#000000"&gt; @procName &lt;/font&gt;&lt;font color="#0000ff"&gt;varchar&lt;/font&gt;&lt;font color="#808080"&gt;(&lt;/font&gt;&lt;font color="#000000"&gt;500&lt;/font&gt;&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;declare&lt;/font&gt;&lt;font color="#000000"&gt; cur &lt;/font&gt;&lt;font color="#0000ff"&gt;cursor&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;for&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;select&lt;/font&gt;&lt;font color="#000000"&gt; [name] &lt;/font&gt;&lt;font color="#0000ff"&gt;from&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#008000"&gt;sys&lt;/font&gt;&lt;font color="#808080"&gt;.&lt;/font&gt;&lt;font color="#008000"&gt;objects&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;where&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;type&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#808080"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;'p'&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;open&lt;/font&gt;&lt;font color="#000000"&gt; cur &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;fetch&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;next&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#0000ff"&gt;from&lt;/font&gt;&lt;font color="#000000"&gt; cur &lt;/font&gt;&lt;font color="#0000ff"&gt;into&lt;/font&gt;&lt;font color="#000000"&gt; @procName &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;while&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#ff00ff"&gt;@@fetch_status&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#808080"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt; 0 &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;begin&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;exec&lt;/font&gt;&lt;font color="#808080"&gt;(&lt;/font&gt;&lt;font color="#ff0000"&gt;'drop procedure '&lt;/font&gt; &lt;font color="#808080"&gt;+&lt;/font&gt; @procName&lt;font color="#808080"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;fetch&lt;/font&gt; &lt;font color="#0000ff"&gt;next&lt;/font&gt; &lt;font color="#0000ff"&gt;from&lt;/font&gt; cur &lt;font color="#0000ff"&gt;into&lt;/font&gt; @procName&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;end&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;close&lt;/font&gt;&lt;font color="#000000"&gt; cur &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;deallocate&lt;/font&gt;&lt;font color="#000000"&gt; cur &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;strong&gt;&lt;u&gt;Method 2 &lt;/u&gt;&lt;/strong&gt;&lt;u&gt;(This method yet simple will give you a better control of the sp’s you want to nuke by creating/viewing a list first)&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#0000ff"&gt;SELECT&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#ff0000"&gt;'DROP PROCEDURE '&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#808080"&gt;+&lt;/font&gt;&lt;font color="#000000"&gt; p&lt;/font&gt;&lt;font color="#808080"&gt;.&lt;/font&gt;&lt;font color="#000000"&gt;NAME &lt;/font&gt;&lt;font color="#0000ff"&gt;FROM&lt;/font&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;font color="#008000"&gt;sys&lt;/font&gt;&lt;font color="#808080"&gt;.&lt;/font&gt;&lt;font color="#008000"&gt;procedures&lt;/font&gt;&lt;font color="#000000"&gt; p&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
	Cheers,&lt;/p&gt;
&lt;p&gt;
	Obi /&gt;&lt;/p&gt;
&lt;p&gt;
	 &lt;/p&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=322" width="1" height="1"&gt;</description></item><item><title>Tech.days Canada 2011</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/10/05/321.aspx</link><pubDate>Wed, 05 Oct 2011 05:13:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:321</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/321.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=321</wfw:commentRss><description>&lt;p&gt;&lt;strong&gt;I’ve already bought my Tech·Days ticket for this Fall – Don’t Miss your chance to come out to join me and save using my User Group promo code.&lt;/strong&gt;&lt;/p&gt;
			&lt;/td&gt;
		&lt;/tr&gt;
&lt;br&gt;
&lt;p&gt;Greeting Folks,&lt;/p&gt;
&lt;p&gt;
									I’m excited to let you know that this year, I’ll be attending Tech·Days Toronto this fall. Tech·Days is Microsoft’s premier technical training conference for Developers and IT Professionals. I am passionate about Microsoft technologies and always enjoy meeting and connecting with other Canadian technical professionals.&lt;/p&gt;
								&lt;p&gt;
									Tech·Days is a great opportunity for you and your team to enhance your technology skills by getting up to speed on the latest Microsoft technologies, and learning how to maximize your use of the current technologies in your organization.&lt;/p&gt;
								&lt;p&gt;
									Check out the three Tech·Days events this year and register today using my special User Group promo Code: &lt;strong&gt;TD2011UG &lt;/strong&gt;and you can get your ticket for only &lt;strong&gt;$399.99&lt;/strong&gt;*. That’s nearly 50% off the regular price of $799.99.&lt;/p&gt;
								&lt;p&gt;
									&lt;strong&gt;Toronto&lt;/strong&gt;       October 25-26, 2011       Toronto Congress Centre                       &lt;/p&gt;
								&lt;p&gt;
									&lt;strong&gt;Vancouver&lt;/strong&gt;   November 15-16, 2011    Vancouver Convention Centre&lt;/p&gt;
								&lt;p&gt;
									&lt;strong&gt;Montreal&lt;/strong&gt;      November 29-30, 2011    Montreal Palais des congrès&lt;/p&gt;
								&lt;p align="center"&gt;
									&lt;a href="http://www.microsoft.com/canada/techdays/2011/default.aspx"&gt;Buy your tickets now &gt;&gt;&lt;/a&gt;&lt;/p&gt;
								&lt;p&gt;
									This year’s Tech·Days promises to have a great line up of technical sessions and networking opportunities to help you enhance your skills and grow in your career. &lt;strong&gt;The first list of 2011 sessions have been posted&lt;/strong&gt; on the TechDays website. &lt;strong&gt;&lt;a href="http://www.microsoft.com/canada/techdays/2011/sessions.aspx"&gt;Check them out&lt;/a&gt;&lt;/strong&gt;. This year the team has made a few enhancements to make Tech·Days even better:&lt;/p&gt;
								&lt;ul&gt;
									&lt;li&gt;
										&lt;strong&gt;NEW!&lt;/strong&gt;Hands-on lab sessions to experience the technology first hand&lt;/li&gt;
									&lt;li&gt;
										&lt;strong&gt;NEW!&lt;/strong&gt;The Partner Pavilion in &lt;u&gt;each city&lt;/u&gt;, providing you with opportunities to network with partners and sponsors&lt;/li&gt;
									&lt;li&gt;
										&lt;strong&gt;NEW!&lt;/strong&gt;Keynote presentations in &lt;u&gt;each city&lt;/u&gt;from awesome technology experts&lt;/li&gt;
								&lt;/ul&gt;
								&lt;p&gt;
									I look forward to connecting with you this year at Tech·Days 2011! 			&lt;br /&gt;						&lt;br /&gt;
									Sincerely,&lt;br /&gt;
									&lt;br /&gt;
									Obi Oberoi		(Principal Developer Evangelist)&lt;/p&gt;
							&lt;/td&gt;
						&lt;/tr&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=321" width="1" height="1"&gt;</description></item><item><title>How to Get Free eBooks</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/09/22/320.aspx</link><pubDate>Thu, 22 Sep 2011 16:44:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:320</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/320.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=320</wfw:commentRss><description>&lt;h2&gt;
	 &lt;/h2&gt;
&lt;p&gt;
	&lt;span&gt;&lt;font color="#000000"&gt;Do you have a constant thirst for &lt;strong&gt;&lt;span&gt;knowledge&lt;/span&gt;&lt;/strong&gt;? &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;&lt;font color="#000000"&gt;Would you like to have access to the newest books on &lt;strong&gt;&lt;span&gt;leading edge technologies&lt;/span&gt;&lt;/strong&gt;? &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;&lt;font color="#000000"&gt;Would you like it even more if these books were available to you for &lt;strong&gt;&lt;span&gt;free&lt;/span&gt;&lt;/strong&gt;? &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;span&gt;&lt;font color="#000000"&gt;Do you love &lt;strong&gt;&lt;span&gt;sharing&lt;/span&gt;&lt;/strong&gt; your opinions with others? &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
	&lt;font color="#000000" face="Times New Roman" size="3"&gt;If you answered yes to any of those questions, then sign up to become a blogger for O'Reilly and receive the latest ebooks for free. Read a book, post a review on your blog, and link it to the O'Reilly site. It's that easy! More information can be found online at: &lt;/font&gt;&lt;a href="http://oreilly.com/bloggers/"&gt;&lt;font color="#0000ff" face="Times New Roman" size="3"&gt;http://oreilly.com/bloggers/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=320" width="1" height="1"&gt;</description></item><item><title>Building Business Applications with Visual Studio LightSwitch</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/07/25/319.aspx</link><pubDate>Tue, 26 Jul 2011 00:01:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:319</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/319.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=319</wfw:commentRss><description>Visual Studio LightSwitch is the simplest way to build business applications for the desktop and cloud. LightSwitch simplifies the development process by letting you concentrate on the business logic, while LightSwitch handles the common tasks for you. In this demo-heavy session, see end-to-end how to build and deploy a data-centric business application using LightSwitch. Finally, see how to take advantage of the underlying LightSwitch application architecture to implement your application’s custom business logic.
&lt;br&gt;&lt;br&gt;
When: Sept. 8th, 2011
&lt;br&gt;
Where: North York Public Library
&lt;br&gt;
Time: 6:00 pm registration - 6:30pm start
&lt;br&gt;
&lt;a href="http://NorthTorontoUG.com/"&gt;North Toronto Dot Net User Group&lt;/a&gt; 
&lt;br&gt;&lt;br&gt;
See you there!
&lt;br&gt;
Obi /&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=319" width="1" height="1"&gt;</description></item><item><title>eBooks for Download</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2011/05/21/318.aspx</link><pubDate>Sat, 21 May 2011 22:00:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:318</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/318.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=318</wfw:commentRss><description>I was looking for an eBook and found this site.
These guys allow for a free download...check it out:
&lt;a href="http://www.free-ebooks-download.org" title="Free ebooks download"&gt;www.free-ebooks-download.org&lt;/a&gt;&lt;br /&gt;Website to download latest free e-books on C#, vb.net, asp.net, 2.0, ado.net, sql 2005, web services, ajax, .net framework, compact framework, xml, sharepoint, exchange server, seo, crystal reports and more.. All free ebooks download, Hurry!&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=318" width="1" height="1"&gt;</description></item><item><title>Web page crashes when passing data through Query String</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2010/10/26/317.aspx</link><pubDate>Tue, 26 Oct 2010 20:30:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:317</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/317.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=317</wfw:commentRss><description>&lt;p&gt;
	If you are a web developer like me, then I am sure you have used QueryString collection at some stage. Although ASP.Net offers some nifty ways to transfer data, but regardless, there are still many situations in which you need to pass data from one web page to another.&lt;/p&gt;
&lt;p&gt;
	In one of my recent projects, I had the need to build a generic template. This template contained a data grid view control that was responsible for building and populating the grid dynamically from twenty different objects. Each object had an unknown number of columns. So every time I had to pass values from one page to another, I couldn&amp;rsquo;t think of anything better but to use a query string.&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	While Query string has its benefits, it also has shortcomings.&lt;/p&gt;
&lt;p&gt;
	If you want to pass single or multiple parameters so long as you pass name value pairs, query string really shines. However, when you start to pass 500 or so bytes of data assigned to a parameter, things can get rather nasty. It will most likely throw an exception I hope you get the picture.&lt;/p&gt;
&lt;p&gt;
	lnk.NavigateUrl = &amp;quot;~/MyProject/&amp;quot; &amp;amp; TargetForm &amp;amp; &amp;quot;?Id=&amp;quot; + sMyId + _&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;amp;Code=&amp;quot; + sCode + &amp;quot;&amp;amp;Description=&amp;quot; + Server.HtmlEncode(sDesc) + _&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;amp;SeqNum=&amp;quot; + sSeqNum + &amp;quot;&amp;amp;ActiveInd=&amp;quot; + sActiveInd + _&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;&amp;amp;ParentId=&amp;quot; + ParentId + &amp;quot;&amp;amp;Name=&amp;quot; + sName&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	While the above will work so long as you don&amp;rsquo;t fill the description with over 500 bytes of data.&lt;/p&gt;
&lt;p&gt;
	As a good measure, you can do a check before passing the data as such:&lt;/p&gt;
&lt;p&gt;
	if (sDesc.Length &amp;gt; 550) {&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sDesc = string.Empty;&lt;/p&gt;
&lt;p&gt;
	}&lt;/p&gt;
&lt;p&gt;
	Now in the target page, check to see description&amp;rsquo;s length is 0. If so, get the data directly from the database to avoid a potential crash like so:&lt;/p&gt;
&lt;p&gt;
	if (Request.QueryString(&amp;quot;Description&amp;quot;) != null) {&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sDesc = Server.HtmlEncode(Request.QueryString(&amp;quot;Description&amp;quot;).ToString);&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (sDesc.Length == 0) {&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sDesc = getDescriptionByID(sId);&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/p&gt;
&lt;p&gt;
	}&lt;/p&gt;
&lt;p&gt;
	&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
	Obi /&amp;gt;&lt;/p&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=317" width="1" height="1"&gt;</description></item><item><title>How to connect to SQL 2005 from inside SQL 2008 Management Studio</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2010/03/20/315.aspx</link><pubDate>Sat, 20 Mar 2010 21:59:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:315</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/315.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=315</wfw:commentRss><description>I recently ran into a problem where I needed to connect to SQL 2005 from inside SQL 2008 Management Studio. &lt;br&gt;&lt;br&gt;

I have SQL 2008 installed on my machine and I run my sql scripts against the production environment which is hosted by my ISP. &lt;br&gt;
Although, the configuration is pretty straight-forward, however, if not done often, it can turn into oblivion. &lt;br&gt;
This blog post is mainly a reminder to me in case I re-image my hard-drive and have to repeat the process.&lt;br&gt;
Here are the following steps:&lt;br&gt;&lt;br&gt;
-	Inside SQL 2008 Management Studio, highlight Database(s) node. You will notice on the right hand pane, there are five columns, namely Name, Policy Health State, Recovery Model, Compatibility Level and Owner.&lt;br&gt;&lt;br&gt;

-	Highlight the ‘Name’ column and right click on it, uncheck &lt;b&gt;Collation&lt;/b&gt;.&lt;br&gt;&lt;br&gt;
-	Now, try to reconnect or simply refresh. &lt;br&gt;&lt;br&gt;

-	You should see all available data bases on the shared server.&lt;br&gt;&lt;br&gt;
Cheers,&lt;br&gt;&lt;br&gt;
Obi /&gt;
&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=315" width="1" height="1"&gt;</description></item><item><title>How to export Telerik's RAD Editor to MS Word</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2009/12/29/314.aspx</link><pubDate>Wed, 30 Dec 2009 00:36:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:314</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/314.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=314</wfw:commentRss><description>I am currently working with Telerik’s RAD Editor server control for ASP.Net. &lt;br&gt;
Needless to say, the control provides a plethora of features for styling, formatting and such. &lt;br&gt;&lt;br&gt;

For all intents and purposes it’s a WYSIWIG tool and you can do practically anything what you can with MS Word.  All said and done, however, it does not provide any out-of-the-box functionality to convert the editor's content to MS Word.&lt;br&gt;&lt;br&gt;

What you can do though is to save the editor content as an .html file, read the entire content into a string and open it in MS Word.  
If you want to edit the .html content, you can even go as far as doing a simple string replacement.&lt;br&gt;&lt;br&gt;

Here’s the code that does just that…&lt;br&gt;
Private folderPath As String = "C:/Report/"&lt;br&gt;
Private template As String = "MyMemo.DOT"&lt;br&gt;&lt;br&gt;

Protected Sub SaveRADContentAsHTML()&lt;br&gt;
        Try&lt;br&gt;
            ' CREATE WORD DOCUMENT&lt;br&gt;
            Dim WordApp = CreateObject("word.application")&lt;br&gt;
            Dim WordDoc = WordApp.Documents.Open(Server.MapPath(folderPath &amp; template))&lt;br&gt;

            WordApp.Application.Visible = False&lt;br&gt;

            Dim wordDocPath As String = Server.MapPath(folderPath)&lt;br&gt;

            If Not File.Exists(Server.MapPath(folderPath &amp; " MyMemo.html")) Then&lt;br&gt;
                WordDoc.SaveAs(wordDocPath &amp; "MyMemo.html")&lt;br&gt;
            End If&lt;br&gt;&lt;br&gt;

            WordDoc.Close()&lt;br&gt;
            WordApp.Quit()&lt;br&gt;&lt;br&gt;

            WordDoc = Nothing&lt;br&gt;
            WordApp = Nothing&lt;br&gt;
        Catch ex As Exception&lt;br&gt;
            Throw ex&lt;br&gt;
        End Try&lt;br&gt;
    End Sub&lt;br&gt;&lt;br&gt;

Private Sub btnReplaceWord_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnReplaceWord.Click&lt;br&gt;
        Dim wordDocPath As String = Server.MapPath(folderPath)&lt;br&gt;
        Dim inputText As String = String.Empty&lt;br&gt;
        Dim sTemp As String = String.Empty&lt;br&gt;
        Try&lt;br&gt;
            inputText = ReadFile(wordDocPath &amp; "MyMemo.html")&lt;br&gt;
            sTemp = inputText.Replace("Purpose~1", radEditor1.Content) 'Please note the string "Purpose~1" is used as a marker for string replacement&lt;br&gt;
            Using sw As New StreamWriter(Server.MapPath(folderPath &amp; "Test1.html"))&lt;br&gt;
                sw.Write(sTemp)&lt;br&gt;
            End Using&lt;br&gt;&lt;br&gt;
            
        Catch ex As Exception&lt;br&gt;
            Throw ex&lt;br&gt;
        End Try&lt;br&gt;
    End Sub&lt;br&gt;&lt;br&gt;

Protected Function ReadFile(ByVal myFilePath As String) As String&lt;br&gt;
        Try&lt;br&gt;
            If Not File.Exists(myFilePath) Then&lt;br&gt;
                Return String.Empty&lt;br&gt;
            End If&lt;br&gt;&lt;br&gt;

            Using sr As New StreamReader(myFilePath)&lt;br&gt;
                Return sr.ReadToEnd()&lt;br&gt;
            End Using&lt;br&gt;&lt;br&gt;

        Catch ex As Exception&lt;br&gt;
            Throw ex&lt;br&gt;
        End Try&lt;br&gt;
    End Function&lt;br&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=314" width="1" height="1"&gt;</description></item><item><title>Talk on LINQ to SQL Stored Procedures</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2009/06/18/302.aspx</link><pubDate>Thu, 18 Jun 2009 18:37:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:302</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/302.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=302</wfw:commentRss><description>On June 17th, I gave a talk on LINQ TO SQL Stored Procedures at Manulife. &lt;br&gt;&lt;br&gt;

Below, please see a link to the sample code that I used for demonstration:
&lt;br&gt;&lt;br&gt;
http://www.eoberoi.com/blogs/GrokTalk/sourcecode.html
&lt;br&gt;&lt;br&gt;

Thanks,
&lt;br&gt;&lt;br&gt;
Obi /&gt;
&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=302" width="1" height="1"&gt;</description></item><item><title>AJAX - Fileupload.HasRows returns false???</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2009/05/01/301.aspx</link><pubDate>Fri, 01 May 2009 05:45:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:301</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/301.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=301</wfw:commentRss><description>I have recently jumped on the AJAX bandwagon and am frantically trying to AJAX enable all my web pages through the use of asynchronous partial-page updates.
&lt;br&gt;
A typical design pattern of an ASP.NET AJAX application involves it consuming web services directly from the client without requiring postbacks to the web server. Not only do postbacks slow down an application, but they also complicate the application design, implementation, and deployment. 
&lt;br&gt;
AJAX is so addictive and such a compelling technology that once you have gotten the hang of it, it is hard to refrain from using it.&lt;br&gt;&lt;br&gt;

However, all said and done, there are some pitfalls that one ought to be aware of.&lt;br&gt; 

This blog post is certainly not intended for what AJAX can or can’t do, but if you are looking to convert your web page and make them AJAX enabled, there are a few things you have got to keep in mind just in case you are stuck.&lt;br&gt;&lt;br&gt;

I had a web page with input controls on a panel all of which were wired to the validator controls. In addition, I also had a FileUpload control. &lt;br&gt;&lt;br&gt;

Prior to AJAX enabling the web page, everything was fine and dandy, but the minute I wrapped the asp panel in an Update Panel, everything worked but the FileUpload. In that, the control (FileUpload) did not detect the file name and returned an empty string when checking for FileUpload.HasFile.&lt;br&gt;&lt;br&gt;

The solution to the problem was not difficult either.&lt;br&gt;

In the markup, essentially all that was missing was the PostBackTrigger with the ControlID="btnSubmit".
&lt;br&gt;&lt;br&gt;


   


&lt;br&gt;&lt;br&gt;

So essentially, all that is happening now is that we are forcing a post back on the click event of the button while everything else happens asynchronously using the Update Panel. So, when the user presses the button, the page gets refreshed and filename is detected.&lt;br&gt;&lt;br&gt;

My next area of interest is JavaScript Object Notation (JSON). This is just another piece of functionality that is part of the AJAX Extension toolkit typically used for serializing and deserializing data. It is somewhat akin to XML/SOAP, except that JSON is a text-based data interchange format which delivers a more consistent experience due to the implementation differences of XML/SOAP by the various browsers.
&lt;br&gt;&lt;br&gt;

Cheers,&lt;br&gt;&lt;br&gt;

Obi /&gt;
&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=301" width="1" height="1"&gt;</description></item><item><title>LINQ TO SQL Vs. Lambda Expressions</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2009/02/04/300.aspx</link><pubDate>Thu, 05 Feb 2009 00:50:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:300</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/300.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=300</wfw:commentRss><description>It is amazing how much you can achieve with Lambda expressions using a single line of code vs. several lines of Linq to Sql.
Although, linq to sql is a better choice over traditional CRUD operations using sql and the like.

Here's how...
Create a new console application project in VS.Net 2008 and import the following name spaces in the module:&lt;br&gt;
Imports System.Collections &lt;br&gt;
Imports System.Linq
&lt;br&gt;&lt;br&gt;


Let's declare an array of string as below:&lt;br&gt;
Dim Provinces As String() = {"Ontario", "New Brunswick", "British Columbia", "PEI", "Quebec", "Manitoba", "Alberta", "Northern Territories"}
&lt;br&gt;&lt;br&gt;

Using LINQ to SQL, iterate through the array list and write the result to a console as below:
&lt;br&gt;
 	Dim oProvince = From s In Provinces _
&lt;br&gt;
            Where (s.StartsWith("N")) _
&lt;br&gt;
            Select s
&lt;br&gt;&lt;br&gt;
        For Each province In oProvince
&lt;br&gt;
            Console.WriteLine(province)
&lt;br&gt;
        Next
&lt;br&gt;&lt;br&gt;

        Console.ReadLine()
&lt;br&gt;&lt;br&gt;

See the number of lines it took to display the provinces beginning with "N"!!!
&lt;br&gt;
With Lambda expressions, all of this can be achieved in a single line of code. See below:
&lt;br&gt;&lt;br&gt;

        For Each prov In Provinces.Where(Function(p) p.StartsWith("N"))&lt;br&gt;
            Console.WriteLine(prov)&lt;br&gt;
        Next
&lt;br&gt;&lt;br&gt;
        Console.ReadLine()
&lt;br&gt;&lt;br&gt;
Lambda expressions are very powerful which take anonymous delegates to give you the desired result.
&lt;br&gt;
While I use LINQ TO SQL where necessary but don't miss a chance when it comes to Lambda expression usage.
&lt;br&gt;
Cheers,
&lt;br&gt;&lt;br&gt;
Obi /&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=300" width="1" height="1"&gt;</description></item><item><title>Tech Days is here...</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2008/10/22/299.aspx</link><pubDate>Wed, 22 Oct 2008 23:59:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:299</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/299.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=299</wfw:commentRss><description>&lt;P&gt;TechDays is happening in Toronto.&lt;/P&gt;
&lt;P&gt;Tech Days is a technology training conference for Canadian IT professionals and developers.&lt;/P&gt;
&lt;P&gt;Although, it is a national event and will be held in all major cities of Canada with a&amp;nbsp;single and two day workshops, however, it will be a two day event in Toronto.&lt;/P&gt;
&lt;P&gt;I am taking some time off work to attend this event. With five tracks&amp;nbsp;from Windows, Web, Data Management etc., my main emphasis will be on the Web and Windows tracks with topics like AJAX for ASP.Net, Silverlight, WPF and MVC framework.&lt;/P&gt;
&lt;P&gt;I think, it is a compelling event with early-bird fee of just $249 which also includes breakfast and lunch.&lt;/P&gt;
&lt;P&gt;For further information or to register, click the url below:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/canada/techdays"&gt;www.microsoft.com/canada/techdays&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Cheers,&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#000080&gt;Obi /&amp;gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=299" width="1" height="1"&gt;</description></item><item><title>IE 7.0 Freezes</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2008/06/09/298.aspx</link><pubDate>Mon, 09 Jun 2008 06:23:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:298</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/298.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=298</wfw:commentRss><description>Recently what appeared to a be a problem with IE 7.0 on my Lenovo T61p drove me up the wall. Every time, I would open a second instance of the browser, it would not only freeze the browser but also all the active windows on my machine!!! I later found out that it was the "Shockwave Flash Object" by Adobe that was the culprit. So overcome this otherwise annoying problem, in IE 7.0 I went to Tools - Manage Add-ons - Enable or Disable Add-ons and disabled the "Shockwave Flash Object" and voila... This action seems to have fixed my problem wherein I can now have multiple instances of IE or for that matter have multiple tab pages in a single instance of IE 7.0.
&lt;br&gt;
Cheers, 
&lt;br&gt;&lt;br&gt;
Obi Oberoi&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=298" width="1" height="1"&gt;</description></item><item><title>Software in 2008</title><link>http://eoberoi.com/blogs/obi-oberoi_weblog/archive/2008/01/03/294.aspx</link><pubDate>Thu, 03 Jan 2008 23:09:00 GMT</pubDate><guid isPermaLink="false">db44779d-1a21-48e2-bc99-58cd61f2619f:294</guid><dc:creator>Obi</dc:creator><slash:comments>0</slash:comments><comments>http://eoberoi.com/blogs/obi-oberoi_weblog/comments/294.aspx</comments><wfw:commentRss>http://eoberoi.com/blogs/obi-oberoi_weblog/commentrss.aspx?PostID=294</wfw:commentRss><description>&lt;P&gt;Here are some of the predictions of what future holds for the industry software in 2008. 
&lt;P&gt;1. &lt;STRONG&gt;User Experience Reaches the Enterprise.&lt;/STRONG&gt; In 2008 we will see several major enterprises start efforts to build UX centric applications that increase worker productivity, reduced transaction costs and increase pull through as the UX meme of the consumer facing world leaks into the enterprise. The days of the battleship gray, forms of data application as the king of the enterprise are numbered because of an imperative towards richer visualization of complex and interconnected data. While there will always be a need for the traditional sort of application, by the end of 2008, it is no longer the only element of the corporate landscape.&amp;nbsp;&lt;A href="http://blogs.msdn.com/blogfiles/brada/WindowsLiveWriter/SoftwareDevelopmentPredictionsfor2008_116C9/image_2.png"&gt;&lt;/A&gt; 
&lt;P&gt;2. &lt;STRONG&gt;Testability Becomes a Requirement for Software Development Frameworks.&lt;/STRONG&gt; No longer satisfied with simple reductions in costs for initial development, a growing community demand frameworks and tools that facilitate sustainable and agile practices. 2008 is the year that frameworks and tools take notice and start to deliver solutions that are testable out of the box. Technologies such as Test Driven Development, MVC/MVP patterns, and frameworks that support mocking become mainstream. After seeing this year’s cool demos at software development industry conferences a common question will be: “...And how do you test that?” Let’s hope the presenters have an answer. 
&lt;P&gt;3. &lt;STRONG&gt;The Companion Applications Become Practical.&lt;/STRONG&gt; While RIA and AJAX application categories continue to grow, many consumer facing web applications and enterprise applications developers realize there is a need for desktop exploitive applications as well as reach web applications that work everywhere. What meaningful application wouldn’t benefit from a pairing like that of Outlook and Outlook Web Access? In the past it has been prohibitively expensive to build these applications, but with the circa 2008 technology such as .NET Framework 3.5 and Silverlight, it is finally becoming practical to have a single codebase that fully exploits the desktop and offers a rich web experience. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Georgia color=#000080 size=4&gt;Obi Oberoi&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://eoberoi.com/aggbug.aspx?PostID=294" width="1" height="1"&gt;</description></item></channel></rss>
