... or so says eWeek. [ HERE ]
Scott is in fine company with 10 of the 100 most important (according to eWeek) being Microsofties.
3. Steve Ballmer CEO, Microsoft
6. Jean-Philippe Courtois President, Microsoft International, Microsoft
12. Kevin Turner COO, Microsoft
13. Ray Ozzie Chief software architect, Microsoft
26. Bob Muglia Senior vice president, Server and Tools Business, Microsoft
28. Scott Guthrie Corporate vice president, .Net Developer Platform, Microsoft
37. Michael Howard Principal security program manager, Microsoft
46. Tony Scott CIO, Microsoft
67. Bill Hilf Director of platform strategy, Microsoft
82. Bronwen Matthews Security program manager, Microsoft
Now, we developers know Scott is WAY higher than 28 :)
If you are an avid reader, like I am, then you know that different publishers tend to have different styles and specialties.
Murach is unique. They don't publish TONS of books, but the ones they do publish fill an interesting space.
Take this one......
I first read the 2005 version of both the C# and the VB books and loved them. I said then, and say again, if I were to teach a VB or C# book I would use these as text books. They are complete, but pleasant to read (unlike lots of textbooks.)
Murach has updated this book to include the 2008 topics.
I dug into to recently because I was doing some interesting things with Microsoft new Dynamic Data technology which makes much use of Partial Classes. It's fully up to date with the 2008 stuff !
Click on the book link to check it out at Amazon.
Applied Innovations, Kentico Partner to Offer Unique Solution for .NET User Groups
Kentico Software, maker of Kentico CMS, and Applied Innovations, a Microsoft Gold Certified provider of Windows-based Hosting solutions, announced today the two companies have partnered to offer a unique free Web site solution for .NET User Groups.
Boca Raton, Fla. (PRWEB) April 8, 2008 -- Kentico Software (http://www.kentico.com), maker of Kentico CMS, and Applied Innovations (http://www.appliedi.net), a Microsoft Gold Certified provider of Windows-based Hosting solutions, announced today the two companies have partnered to offer a unique free Web site solution for .NET User Groups.
The solution, available through Kentico's partnership with Applied Innovations, allows local .NET developer communities to collaborate between community members.
We are excited to further our relationship with the .NET user community as we continue to build a line of robust hosting services geared toward developers
Users will receive a free license of Kentico CMS Enterprise Edition (valued at $1,499) and a ready-to-use Web site template that helps .NET User Groups to share information with group members; inform members about group meetings; publish articles and presentations from the meetings; communicate in discussion forums; distribute e-mail newsletters; create blogs; share files and photos; and create member-only areas.
The custom Web site template was created to meet the specific needs of .NET user groups. The template allows groups to focus on their community activities, rather than exhaust resources building a Web site.
".NET User Groups provide valuable information and training for their members and we are happy that we can support their activities," said Petr Palas, founder and CEO of Kentico Software. "We are happy that we found a professional hosting partner, Applied Innovations, to offer free web hosting for .NET User Groups. Users get a complete solution and they can start editing their new Web site instantly."
Applied Innovations will provide a free hosting account for .NET user groups to host their Kentico CMS installation.
"We are excited to further our relationship with the .NET user community as we continue to build a line of robust hosting services geared toward developers," said Jess Coburn, CEO, Applied Innovations. "In partnering with Kentico Software, we are able to leverage their advanced CMS solution to create an out-of-box collaboration solution for .NET user communities."
.NET User Groups can sign up for a free license and hosting at http://www.kentico.com/dng.aspx. To learn more about Applied Innovations, please visit http://www.appliedi.net.
About Kentico CMS Kentico CMS is an affordable ($499 to $1499 per Web site) web content management solution providing a complete set of features for creating interactive Web 2.0 sites on the Microsoft ASP.NET platform. It supports content/design separation, workflow, permissions, multilingual support, full-text search, SEO, on-line forms, image galleries, forums, blogs, polls and 70+ configurable web parts. It's being used by more than 600 web sites in 55 countries. The clients include Gibson, Bayer, Guinness, Deutsche Telekom and others. Kentico CMS trial version is available at http://www.kentico.com.
About Applied Innovations Based in Boca Raton, Florida, Applied Innovations (http://www.appliedi.net) is a Microsoft Gold Certified Web hosting provider specializing in Windows Web hosting. Since 1999, Applied Innovations has hosted thousands of domains for small to medium sized businesses internationally, offering world-class service and support at competitive and economical rates.
This is another one of those "Sniper Topics" that I like, again from PAKT Publishing.
Approximately 280 pages of drill down on Object Oriented Client Side development in JavaScript using the Microsoft AJAX Client Libraries.
Not only does this text enumerates the namespaces in the Microsoft AJAX Client Libraries, and provide good coverage of the Client Component Framework, but it teaches all the "whys" along with the "How Tos".
If your building AJAX applications and Microsoft's AJAX technology is at the center of your work then this book is a "must read".
Click on the book image above to check it out on Amazon.com
I know this isn't "hot off the press" but I'm just
Microsoft patterns & practices Web Client Software Factory 2.0
February 2008 Release
Resources
· MSDN site: http://msdn.microsoft.com/webclientfactory
· Community site: http://www.codeplex.com/websf
And some more information from their February Release Announcement....
The Web Client Software Factory (WCSF) provides a set of guidance for architects and developers building enterprise Web applications. The factory includes samples, reusable code and a guidance package which automates key development tasks from within Visual Studio.
Using the Web Client Software Factory assets, developers can create Composite Web applications composed of independently developed and deployed modules. These modules are dynamically brought together at runtime into a common shell. Additionally the factory includes support for ASP.NET AJAX thus providing users with a richer and more responsive user experience.
New In This Release
The February 2008 release of the Web Client Software Factory has the following improvements to the June 2007 release.
− Full support for Visual Studio 2008 and .NET Framework 3.5
− Added ASP.NET AJAX extenders for Context Sensitive Autocomplete, AJAX Validation, and Real Time Search that can be used in existing ASP.NET sites and ASP.NET sites built using the Composite Web Application Block.
− Added UI Composition capability through extending our dependency injection mechanism to support Pages, User Controls and Master Pages.
− Added Dependency Injection on ASMX Web Services and JSON services.
− Added a new set of Quickstarts and How-To topics on MVP, Modularity and the new AJAX extenders
− Added a new Order Entry Reference application that demonstrates all of the new functionality.
In addition, this release of WCSF has the following community issues and fixes:
− 42 Workitems closed including the top-voted items on CodePlex
− Add ASP.NET AJAX Support
− Web Client Software Factory Support for Enterprise Library 3.1
− Services through configuration
− Support for using the Validation Application Block
− Recipe support for Visual Basic .NET
− Added Presenter support for Master Pages
Nope, this is not an infomercial. I've been on the road for lots of this spring. For the last two weeks I was in Seattle for the MVP Summit, then in Orlando for Dev Connections, then in Atlantic City for the Microsoft Health and Life Sciences. I got sick about half way through the 2 weeks. Some sort of intestinal fun, probably a bacterial infection. It make Dev Connections and the HLS conference interesting. Have you ever tried to give a presentation while concentrating on not throwing up or having another kind of embarrassing accident ? :) Usually stuff like this lasts for about 24 hours. Today is day 8 of the really "active" part and I'm feeling almost ready to try eating again after a week of Ginger Ale. I just got on the scale and have lost nearly 20 pounds from last Sunday to this. Yuck ! In any event. I'm expecting to be back on line this week. 3 of my 4 sessions this past week were well received (considering) but the ListView talk was a bomb so I'll be doing How Do I videos of the material. Since I'm in the office for few days, I'll be cranking out some videos. As always , feel free to send suggestions.
I frequently am asked to server as a technical reviewer on development books. Time doesn't permit me to always say yes but I try to make time to agree to do the more interesting titles.
This book is one I said yes to. Adam and Joel have done a great job of exposing this detailed subject.
Controls are such a powerful re-use mechanism and so under covered.
The book is due for release on July 15th and you can save 5% with an Amazon.com preorder.
[ Click HERE for the book on Amazon.com ]
Does your client code need to know what control caused your update panels to update or which of several UpdatePanels contained the triggering control ? Try this.... (Or do the same thing with addbeginRequest();
1 <script type="text/javascript"> 2 <!-- 3 var prm = Sys.WebForms.PageRequestManager.getInstance(); 4 5 prm.add_endRequest(EndRequest); 7 function EndRequest(sender,args) 8 { 9 alert(sender._postBackSettings.panelID + " -> " + sender._postBackSettings.sourceElement.id); 10 } 11 --> 12 </script>
Note that "id" contains the id of the CONTROL that caused the postback. panelId contains a string that appends the event trigger with the UpdatePanel name. Note that if the update was caused by an event configured in the Triggers Collection or updated explicitly in JavaScript, the "Control" name will be the UpdatePanel.
Look at the stuff students can download for FREE !
This program was announced in February but it seems like alot of students still don't know about it.
Students, get the details HERE.

Today, while sitting in a discussion about the new Microsoft MVC Framework at the Microsoft MVP summit, I got an email (reading on my phone) from Kevin Karasinski, a developer at Sandcastle Interactive.
The subject line of the email was my blog password !
Kevin sure knows how to get a guys attention :)
Kevin, good guy that he is, was taking the time to let me know about a newly discovered (and already fixed) security defect in BlogEngine.net, which is the blogging engine that I use here at JoeOn.net.
Thanks Kevin, you gave me a freakin' heart attack !!!!
Needless to say, my blog has been patched to remove the defect.
Kevin pointed me to Danny Douglass' blog entry HERE.
And [ HERE ] is the official BlogEngine.net patch announcement.
Kudos to Danny, and the BlogeEngine.net guys for fixing this so quickly.
And thanks to Kevin for taking the time to let me know, though maybe next time you can just call my cell phone :)
I get an obscene amount of email. Since I've been working with the Developer Community at Microsoft for 7 years, my email address has been spread around a bit. I get about 1000 email a day. Very often from developers who what me to write code for them :)
I generally don't have time to do that, but sometimes I get an email from someone why has really tried to solve a problem that should be simple, but whose answer is not always as obvious as the problem would lead you to believe.
This week a Developer emailed me about updating an UpdatePanel.
One of the true strengths of ASP.NET is the ability to take several different approaches to writing applications based on your needs and preferred development style.
Though I think the UpdatePanel control is AWESOME, my personal preference for AJAX style programming leads me to write more client side code and communicate with the server via JavaScript enabled web service calls.
The problem was, the developer was using the UpdatePanel and, due to functionality in the business layer, he needed to prevent the user from click a submit button twice in a row. Meaning, when the user clicks the button that caused the UpdatePanel to update, he needed that buttonto be disabled until the UpdatePanel's refresh was complete.
Before Click.....
Then, after the click but before the UpdatePanel has completed it's update.....
And yes... I know that in a real application one should add some updating indicator.
So, the UpdatePanel definition looks like this.
22 <div>
23 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
24 <ContentTemplate>
25 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
26 <br />
27 <br />
28 <asp:Label ID="Label1" runat="server" Text="Label" Width="622px"></asp:Label><br />
29 <br />
30 </ContentTemplate>
31 </asp:UpdatePanel>
32 </div>
33 <br />
34 <input id="SubButton" style="width: 618px" type="button" value="Call UpdatePanel Method" onclick="return SubButton_onclick()" />
35 <br />
36 <br />
Note that the HTML button control "SubButton" is outside the UpdatePanel and is not defined as a Trigger to the UpdatePanel.
In order to turn the Button off and get the UpdatePanel to update, we're going to do it all in JavaScript.
If you use an ASP.NET Button control and disable the Button with an OnClientClick event handler, that code fires first and the postback never occurs.
Our JavaScript "SubButton_onclick()" function looks like this.
4 <script type="text/javascript">
5 <!--
6 function SubButton_onclick()
7 {
8 var prm = Sys.WebForms.PageRequestManager.getInstance();
9 var mybutton = document.getElementById('SubButton')
10 mybutton.disabled = true;
11 prm._doPostBack('UpdatePanel1', '');
12 }
13 // -->
14 </script>
Hopefully the code is self explanatory.
The Button is disabled and the UpdatePanel postback is triggered.
But.... How do we know when the update is complete so we can re-enable the Button.
37 <script type="text/javascript">
38 <!--
39 var prm = Sys.WebForms.PageRequestManager.getInstance();
40
41 prm.add_endRequest(EndRequest);
42
43 function EndRequest(sender,args)
44 {
45 var mybutton = document.getElementById('SubButton');
46 mybutton.disabled = false;
47 }
48 -->
49 </script>
Luckily, the PageRequestManager is throughly evented. :)
We just add an "EndRequest" event handler and have it re-enable the Button.
Pretty simple after you see the solution :)
[ Download the code HERE. ]
Say hello to Alice. [ More info here. ]
From their web site......
In Alice's interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. Alice allows students to immediately see how their animation programs run, enabling them to easily understand the relationship between the programming statements and the behavior of objects in their animation. By manipulating the objects in their virtual world, students gain experience with all the programming constructs typically taught in an introductory programming course.
Today Scott Guthrie posted about the new preview availability of ASP.NET Dynamic Data. [Click HERE to read his post.]
I know, the pace of new releases makes it hard to keep up and you need to pick and choose which things you invest your time in!
When you hear about ASP.NET 3.5 "Dynamic Data", you often see a screen-shot like the one Scott blogged.
Resist the temptation to say "Yea, another datagrid control".
This is one of the most exciting new ASP.NET Technologies.
I'll be presenting on ASP.NET 3.5 Dynamic Data at ASP.NET Connections in a couple of weeks.
After that - would you all like some How-D-I videos on Dynamic Data ????
I nearly never make non-technical posts to my blog, but today is my wife's birthday - and since I've developed friendships with so many of my readers, I wanted to wish Jill happy birthday "Out Load". (Thanks to my geek readers for indulging me.) Jill, after 10 years, I Love you every bit as much as I did on the day I asked you to marry me. You are everything! And, though I don't tell you often enough, I thank god every day for crossing our paths. I have no idea what I did to deserve you and our children, but life wouldn't be worth living with out you. I promise to work to make this year one of your happiest ! I'm sure all my readers join me in wishing you the loudest Happy Birthday !
$49
I'm a tools junkie! Anything that helps be work more efficiently is HUGE for me since every 10 minutes I can "save" in a day is 10 minutes with my Children, talking to my Wife, on my Harley, in the gym, etc.....
I've been a Visual SlickEdit user for many years, you can set it up to look/work like Visual Studio and it has syntax highlighting for EVERYTHING (even stuff I've never heard of) and there are versions for Windows, Mac OSX, Linux, Solaris, AIX, HP-UX, etc.
Introducing SlickEdit Tools for Visual Studio.
Now they've come out with 2 tools add-ins for Visual Studio.
- Editing Tools
- Versioning Tools
Each is priced at $49
You can read full feature lists here.
The versioning stuff is interesting but for me the Editing Toolbox ROCKS.
Here are the highlights from their site - download the trial, if you decide to keep it, it's only %40
Aliases and Acronyms: Use directory aliases to save keystrokes and mouse usage when opening files. Use acronym expansion to save keystrokes when typing class, namespace, or function names in your code. Auto Code Doc Viewer Extract header comments into MSDN-like documentation, fully linked HTML help that can be browsed in Visual Studio as a tool window and exported for sharing with others. Code Annotations Insert comments and notes about code without actually modifying the source file. Comment Wrapping Enable automatic wrapping of any type of multi-line comment as you type. You can also reflow existing comments in the current file. Icon Extractor Simplify the task of finding quality icons and applying them to your applications. Quick Profiling Fine-tune your profiling to get information about a specific section of code. This feature allows you to time many cases that are not possible with standard profilers, such as timing complex loops, recursive functions, and the time between an object’s creation and disposal. Regex Evaluator ( *** a must FOR all web developers) Interactively create and test regular expressions, which are used to express text patterns for searching. Code Navigation Use keyboard shortcuts to jump from a symbol to its definition and to list all references for the current symbol. Word Completion Use commands to search for and insert additional text from a matching string.
Wendy Tanaka wrote an interesting piece in THIS Forbes on line article where she suggests that negotiating with Yahoo may not be worth the hassle and she suggests some other things that Microsoft could choose to do with the $40 Billion. Here are some of her suggestions. --Hire 40,000 engineers, at $100,000 apiece, for a decade --Acquire Facebook (estimated to have a market value of $15 billion), along with just about any other meaningful social networking site, including MySpace, Bebo, Hi5 and LinkedIn. There would still be enough money left over to pay some consultants to help with integration. --Spend eight times more than Google did last year to acquire traffic--and presumably make traffic more pricey for Google, to boot. --Hire 80 million workers in China to do nothing but click on Microsoft properties and related ads for 10 years. --Promise a free Big Mac to everyone who clicks on a Microsoft ad--and give away 14 trillion of 'em.
Have you ever tried to set up a web site and use 2 popular ASP.NET applications ?
Did you get THIS ?

I did.
I set up BlogEngine.net in c:\inetpub\wwwroot - it worked fine !
Then I set up ScrewTurnWiki in c:\inetpub\wwwroot\wiki.
Now, ScrewTurnWiki is really simple to install and it's always worked for me before but this install failed (though as you'll see the problem is ASP.MET and the applications.)
The error messages that I was getting when trying to load the wiki were about not being able to resolve a BlogEngine.net assembly !
The problem is this......
ASP.NET applications have a distinct and complete configuration hierarchy. This is very useful if you are taking advantage of it, but can be a real pain if you are not.
The application in the subordinate directory inherits the entries from the root application. So, extensions, handlers, providers, etc.
The solution is a little counterintuitive. You would think that you could tell the subordinate application (Wiki) to ignore any configuration changes that are made higher up in the hierarchy, but you can't.
You need to tell the root application not to send configuration to any subordinate applications.
It looks something like this.
<configuration> <configSections> ... </configSections> <location path="." inheritInChildApplications ="false"> ... rest of config </location> </configuration>
Many thanks to Nikhil and Clint for the data !
With more code to write than time to write it, I'm a huge fan of anything that helps me code.
Someone recently sent me a link to Home Tomato's Visual AssistX for Visual Studio.
This is a great example of how the 3rd party ecosystem makes the .NET platform great for developers.
I'd type a list of features here but the list is HUGE.
Instead, check it out here http://www.wholetomato.com/products/default.asp
Personal Licence is $99
|