Alliagator Tags Archive for Monday, March 10 2008



DotNetKicks.com Links
This is how ASP.NET MVC controller actions should be unit tested ... Jeffrey Palermo says how should be the optimal way to unit test a ASP.NET MVC app, without the massive usage of helper methods to setup mocksGo
Watch out for Collection property Setters in ASP.NET Controls ... If you've ever run into the ASP.NET Control Design time error "Cannot create Control" you may have run into a small but easy to miss details about collection properties in ASP.NET controls: The controls can't have a setter if they are serialized from the designer or an error will occur in the designer even while code runs just fine at runtime.Go
Introduction to SubSonic ... An introduction to SubSonic, a data-layer builder.Go
ASP.NET MVC Preview 2 CAPTCHA using ActionFilterAttribute ... My last article on ASP.NET MVC CAPTCHA was very well received by many of my readers and it even caught the eye of the DotNetKicks crowd. Now that MVC Preview 2 was released last week, many new features make encapsulating my CAPTCHA control even easier. Most notably is the ActionFilterAttribute which allows you to override the Pre and Post action events for any action the attribute is applied to.Go
Folks Ajax - New Release, Documentation and Samples now available! ... The Folks Ajax Framework 0.1.0 was released, stable, refactored, documented and with new features.Go
IE8 from MIX08 to developers ... Although I was not in mix08, I took interest in knowing every detail of how it is going on and downloaded the sessions and keynote as it is available at http://sesssions.visitmix.com , a clean Silverlight site with all the cool videos. This morning , I was watching out the keynote, and found Dean Hachamovitch (General manager,IE) point out some of the cool new features that really dropped my jaws...Go
Building a grouping Grid with GridView and JQuery ... Building a grouping Grid with GridView and JQueryGo
CAPTCHA Image ... Using CAPTCHA images to prevent automated form submissionGo
ApplicationHost Helper Service - what does it do? ... Info about the ApplicationHost ServiceGo
The Intelligent Retrieving, Responding and Discovering Engine ... eeggi (engineered, encyclopedic, global and grammatical identities) is the world's first mathematically-based Search and Retrieve, Response, and Discovery engine (ReDi engine), capable of focusing on the concept of text and not just the text itselfGo
Common ASP .net performance myths ... Common ASP .net performance mythsGo
ASP.NET For Beginners: This funny <%# and <%= markup ... Everybody who starts to learn ASP.NET techniques ask the question: What is <%= and <%# What is the difference, and how to use this?Go
Cold, Hard, Cache! ... Don't get me wrong, I really like the Asp.Net Cache (or HttpRuntime.Cache or Uncle Daddy if you want to call it that... you're a little odd aren't you?), but sometimes it just can't be trusted. I mean, I just gave you (the cache) my precious object a second ago and now you claim you don't have it? Did you lose it? Did you sell it on eBay? Did you pawn it to support your habit? Please at least tell me you got a decent price for it.Go
Take Row-Level Control of Your GridView ... This article explains how to use the events and properties of the GridView in order to customise the way the data appears.Go
Delicious tagged ASP.NET Links
CodeProject: 10 ASP.NET Performance and Scalability Secrets. Free source code and programming helpGo
Scott Hanselman's Computer Zen - ASP.NET MVC Preview 2 Screencast TutorialsGo
Top 10 Best Practices for Production ASP.NET Applications - Daptivate > by Kyle BeyerGo
Why my ASP.NET AJAX forms are never submitted twice | EncosiaGo
ScottGu's Blog : Tip/Trick: Url Rewriting with ASP.NETGo
MIX07 /sessionsGo
Asp.NetGo
Brad Abrams : Mix08 Session Overview: Building Great AJAX Applications from Scratch Using ASP.NET 3.5 and Visual Studio 2008Go
http://aspnet.4guysfromrolla.com/articles/022708-1.aspxGo
Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 3: ASP AllianceGo
Nikhil Kothari's Weblog : Ajax with the ASP.NET MVC FrameworkGo
Coolite Inc. - ASP.NET Web ControlsGo
DevASP.NET for ASP.NET, VB.NET, XML and C# (C-Sharp) DevelopersGo
Json.NET - HomeGo
Scott Gu Blog Links
My Presentations in Arizona this Tuesday ... This week I'm visiting Scottsdale Arizona and will be presenting at a free user group event during the day.  I'm presenting two sessions myself: 1) Developing Applications using Silverlight 2 : This will be a drill-down into the new Silverlight 2 Beta1 release, and how you can build applications with it using VS 2008 and Expression Blend.  You'll leave this session with a good understanding of the basics of Silverlight programming and how to start building applications with it. 2) Developing Applications using ASP.NET MVC : This session will be a drill-down into the new ASP.NET Model-View-Controller framework option (which last week was updated .  You'll leave this session with a good understanding of what it is, how it works, and how to start building ASP.NET web applications with it. In addition to my sessions above, there will also be great sessions at the event from Microsoft employees on "Consuming Web Services with Microsoft Silverlight", "Encoding Video for Microsoft Silverlight", and "Serving Applications with Microsoft Silverlight Streaming".  You can sign up and attend the sessions for free.  Click here for more details on the events, and click here to register online to attend.  Hope to see some of you there, ScottGo
First Look at Using Expression Blend with Silverlight 2 ... Last week I did a First Look at Silverlight 2 post that talked about the upcoming Silverlight 2 Beta1 release.  In the post I linked to some end-to-end tutorials I've written that walk through some of the fundamental programming concepts behind Silverlight and WPF, and demonstrate how to use them to build a "Digg Search Client" application using Silverlight: Part 1: Creating "Hello World" with Silverlight 2 and VS 2008 Part 2: Using Layout Management Part 3: Using Networking to Retrieve Data and Populate a DataGrid Part 4: Using Style Elements to Better Encapsulate Look and Feel Part 5: Using the ListBox and DataBinding to Display List Data Part 6: Using User Controls to Implement Master/Details Scenarios Part 7: Using Templates to Customize Control Look and Feel Part 8: Creating a Digg Desktop Version of our Application using WPF In this first set of Silverlight tutorials I didn't use a visual design tool to build the UI, and instead focused on showing the underlying XAML UI markup (which I think helps to explain the core programming concepts better).  Now that we've finished covering the basics - let's explore some of the tools we can use to be even more productive. Expression Blend Support for Silverlight In addition to releasing the upcoming Beta1 of Silverlight 2, we are also going to ship Visual Studio 2008 and Expression Studio tool support for targeting it.  These tools will offer a ton of power for building RIA solutions, and are designed to enable developers and designers to easily work on projects together. In today's post I'm going to introduce some of the features in the upcoming Expression Blend 2.5 March preview.  After demonstrating some of the basics of how Blend works, we are going to use it to build a cross-platform, cross-browser Silverlight IM chat client: The above screen-shot shows what the application looks like at runtime on a Mac.  Below is a screen-shot of what it looks like at design-time within Expression Blend: We'll use Expression Blend to graphically construct all of the UI for the application, as well as use it to cleanly data-bind the UI to .NET classes that represent our chat session and chat messages. All of the controls we'll use to build the chat application are built into Beta1 of Silverlight 2. Disclaimer: I am not a designer (nor am I cool) Let me say up front that I am a developer and not a designer.  I'm also not very cool.  While I understand the techniques to create UI, I sometimes choose bad colors and fonts when putting it together (only after I did all the screen-shots for this post did a co-worker helpfully point out that there is actually a site dedicated to banning some of the fonts and colors I used . Ouch). For those of you with artistic skill out there - please be gentle with me and focus your attention on the features and techniques I demonstrate below, rather than on the font and color choices I use. :-) Getting Started: Creating a new Silverlight 2 Project Expression Blend and Visual Studio 2008 share the same solution/project file format, which means that you can create a new Silverlight project in VS 2008 and then open it in Expression Blend, or you can create a new Silverlight project in Expression Blend and open it in VS.  You can also have both Expression Blend and VS 2008 open and editing the same project as the same time. Since in my previous Silverlight tutorial series I already showed how to create a new Silverlight project using VS 2008, let's use this post to show how to create a new Silverlight application using Expression Blend.  To do this, simply choose File->New Project in Expression Blend, select the "Silverlight 2 Application" icon, and click ok: This will create a new (VS-compatible) solution file and Silverlight application project: Blend includes a full WYSIWYG designer for Silverlight 2 applications.  When opening Silverlight pages and controls you can switch the design-surface to be in design vieGo
First Look at Silverlight 2 ... Last September we shipped Silverlight 1.0 for Mac and Windows , and announced our plans to deliver Silverlight on Linux. Silverlight 1.0 focused on enabling rich media scenarios in a browser, and supports a JavaScript/AJAX programming model. We are shortly going to release the first public beta of Silverlight 2, which will be a major update of Silverlight that focuses on enabling Rich Internet Application (RIA) development. This is the first of several blog posts I'll be doing over the weeks and months ahead that talk in more depth about it. Cross Platform / Cross Browser .NET Development Silverlight 2 includes a cross-platform, cross-browser version of the .NET Framework, and enables a rich .NET development platform that runs in the browser. Developers can write Silverlight applications using any .NET language (including VB, C#, JavaScript, IronPython and IronRuby). We will ship Visual Studio 2008 and Expression Studio tool support that enables great developer / designer workflow and integration when building Silverlight applications. This upcoming Beta1 release of Silverlight 2 provides a rich set of features for RIA application development. These include: WPF UI Framework : Silverlight 2 includes a rich WPF-based UI framework that makes building rich Web applications much easier. In includes a powerful graphics and animation engine, as well as rich support for higher-level UI capabilities like controls, layout management, data-binding, styles, and template skinning. The WPF UI Framework in Silverlight is a compatible subset of the WPF UI Framework features in the full .NET Framework, and enables developers to re-use skills, controls, code and content to build both rich cross browser web applications, as well as rich desktop Windows applications. Rich Controls : Silverlight 2 includes a rich set of built-in controls that developers and designers can use to quickly build applications. This upcoming Beta1 release includes core form controls (TextBox, CheckBox, RadioButton, etc), built-in layout management panels (StackPanel, Grid, Panel, etc), common functionality controls (Slider, ScrollViewer, Calendar, DatePicker, etc), and data manipulation controls (DataGrid, ListBox, etc). The built-in controls support a rich control templating model, which enables developers and designers to collaborate together to build highly polished solutions. Rich Networking Support : Silverlight 2 includes rich networking support. It includes out of the box support for calling REST, WS*/SOAP, POX, RSS, and standard HTTP services. It supports cross domain network access (enabling Silverlight clients to directly access resources and data from resources on the web). Beta1 also includes built-in sockets networking support. Rich Base Class Library : Silverlight 2 includes a rich .NET base class library of functionality (collections, IO, generics, threading, globalization, XML, local storage, etc). It includes rich APIs that enable HTML DOM/JavaScript integration with .NET code. It also includes LINQ and LINQ to XML library support (enabling easy transformation and querying of data), as well as local data caching and storage support. The .NET APIs in Silverlight are a compatible subset of the full .NET Framework. Silverlight 2 does not require the .NET Framework to be installed on a computer in order to run. The Silverlight setup download includes everything necessary to enable all the above features (and more we'll be talking about shortly) on a vanilla Mac OSX or Windows machine. The Beta1 release of Silverlight 2 is 4.3MB in size, and takes 4-10 seconds to install on a machine that doesn't already have it. Once Silverlight 2 is installed you can browse the Web and automatically run rich Silverlight applications within your browser of choice (IE, FireFox, Safari, etc). Silverlight 2 Tutorials: Building A Simple Digg Client To help people come up to speed with Silverlight 2, I wrote a Silverlight application and put toGo
.NET 3.5 Client Product Roadmap ... A few months ago I did a .NET Web Product Roadmap blog post where I outlined some of the product plans we have to build on top of the web development features we’ve shipped with Visual Studio 2008 and .NET 3.5. Over the next few months we will also be releasing a number of enhancements specific to client development as well.  We have put a lot of effort into addressing some of the biggest areas of customer feedback, while also trying to really push the envelope on the capabilities developers have when building Windows applications. All of these improvements build on top of VS 2008 and .NET 3.5, and will make .NET client development even better going forward. Below is a roadmap of some of the upcoming releases we have planned for the months ahead: Improved .NET Framework Setup for Client Applications One of the biggest asks we’ve had over the years from customers and ISVs building client applications is to make the setup and installation of the .NET Framework easier and faster. This summer we are going to ship a new setup framework for .NET that makes it easier to build optimized setup packages for client applications. This setup framework can be integrated with existing installation frameworks (for example: products like InstallShield), and enables a smaller and faster end-user setup experience of the .NET Framework. Windows Forms and WPF client applications will be able to use this setup framework to cleanly “bootstrap” getting the .NET Framework installed onto machines. The setup “bootstrap” utility will support automatically downloading the minimal set of .NET Framework packages needed to enable .NET 3.5 client applications on a machine. For example, if a user already has .NET 2.0 installed on their machine, setup will be smart enough to automatically download only the upgrade patches necessary to update .NET 2.0 to 3.5 (and not have to re-download the components already provided by .NET 2.0). This will significantly shrink the payload size of client setup programs, and speed up the installation experience. We’ll also be delivering improvements that enable a more integrated application install experience for both MSI and ClickOnce based solutions, and support a more consumer friendly user experience that is easy to build. Improved Working Set and Startup Improvements for .NET Client Applications One of the other common asks we receive is to enable .NET client applications to launch faster in “cold startup” scenarios. “Cold startup” scenarios occur when no other .NET client applications are running (or have recently run) on a machine, and require the OS to load lots of pages (code, static data, registry, etc) from disk. If you are loading a large .NET client application or library, or are using a slow disk, these cold startup scenarios can require many seconds for your application to start. This summer we are going to ship a servicing update to the CLR that makes some significant internal optimizations in how we optimize our data structures to cut down on disk IO and improve memory layout when loading and running applications. Among many other benefits, this work will significantly improve the working set and cold startup performance of .NET 2.0, 3.0 and 3.5 applications and will dramatically improve end-user experiences with .NET-based client applications. Depending on the size of the application, we expect .NET applications to realize a cold startup performance improvement of between 25-40%. Applications do not need to change any code, nor be recompiled, in order to take advantage of these improvements so the benefits are automatic. WPF Performance Improvements This summer we are also planning to release a servicing update to WPF that includes a bunch of performance optimizations that improve its text, graphics, media and data stack. These include: - Moving the DropShadow and Blur bitmap effects, which are currently software rendered, to be hardware accGo
Feb 17th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET ... Here is the latest in my link-listing series .  Also check out my ASP.NET Tips, Tricks and Tutorials page for links to popular articles I've done myself in the past. ASP.NET Top 10 Best Practices for Production ASP.NET Applications : Kyle has a nice post that summarizes a number of good best practices to follow when deploying your ASP.NET applications into production. Paging Through Data with the ASP.NET 3.5 ListView and DataPager Controls : Scott Mitchell continues his excellent series on the new ASP.NET 3.5 data control features.  In this latest article he shows how to page using the ListView and DataPager controls. ASP.NET AJAX How to install and use the ASP.NET AJAX Control Toolkit in VS : Nannette Thacker has a nice post that details step-by-step how to install and use the ASP.NET AJAX Control Toolkit controls within Visual Studio or Visual Web Developer. JavaScript Stack Traces in ASP.NET AJAX and JavaScript Error Publishing using ASP.NET AJAX : Joel Rumerman has put together two nice posts that detail some god ways to capture JavaScript stack trace information, as well as to report JavaScript errors using ASP.NET AJAX. ASP.NET AJAX History Tutorials : Jonathan Carter has published a good series of tutorials that demonstrate how to use the new ASP.NET AJAX History support that we'll be shipping later this year (it is currently available in the ASP.NET Extensions CTP download).  This enables you to add forward/back button navigation support within AJAX applications. Using JQuery with VS 2008 JavaScript Intellisense : One of the improvements we shipped in our recent VS 2008 Hotfix Roll-Up last week was to address issues with JavaScript intellisense support for JQuery (another popular AJAX framework).  Brennan Stehling, James Hart, and Lance Fisher have done blog posts recently that discuss how to enable even richer JQuery intellisense inside VS 2008 using intellisense-friendly JQuery libraries that are referenced while coding (and then swapped out for the real library at runtime).  You can read their blog posts about how this works here and here and here . ASP.NET MVC Tip: Submitting an AJAX Form with JQuery : While on the subject of JQuery, I thought I'd link to a post in Mike Bosch's ASP.NET MVC series that shows how you can integrate JQuery in the browser on the client with the ASP.NET MVC framework on the server. Visual Studio Visual Studio Programmer Themes Gallery: Visual Studio enables you to customize the color settings of the text editor and IDE, as well as to export and import the settings (use the Tools->Import and Export Settings menu to do this).  Scott Hanselman has a great post that provides previews of a bunch of cool pre-built themes that people have published that you can download and use for free. Did you know: the Solution Explorer Supports Type-Ahead Selection : Sara Ford has another nice post in her series on Visual Studio tips and tricks.  This post talks about a shortcut you can use to quickly select files in the solution explorer. Code Profiler Analysis in VS 2008 : Maarten Balliauw has a nice post that describes how to use the code profiling features in the Developer edition of Visual Studio Team System to analyze code performance. Visual Studio Team System 2008 Database Edition Power Tools : Greg Duncan posts about the new power tools download that has been released by Microsoft and which delivers a bunch of cool new database development features for the Database editions of Visual Studio Team System. Japanese Release of VS 2008 Web Deployment Projects : Late last month I announced the release of the VS 2008 Web Deployment Project support.  This past week the team also released a localized Japanese version of it.  Note: you can read a Japanese translated version of my blog here (thanks Chica!). .NET LINQ to JSON , LINQ to SharePoint , LINQ to Active Directory , LINQ to TerraServer , LINQ to FlickR : Just a few of the new LINQ providers now availableGo
ASP.NET MVC Framework Road-Map Update ... This past December we released the first preview of a new ASP.NET MVC Framework as part of the ASP.NET 3.5 Extensions CTP Release . I also wrote a number of blog posts that provide more detail on what the ASP.NET MVC framework is and how you can optionally use it: Introducing the ASP.NET MVC Framework ASP.NET MVC Tutorial (Part 1) ASP.NET MVC Tutorial (Part 2: Url Routing) ASP.NET MVC Tutorial (Part 3: Passing ViewData from Controllers to Views) ASP.NET MVC Tutorial (Part 4: Handling Form Edit and Post Scenarios) We've had great feedback on the framework since then, and had a ton of downloads and excitement around it.  One of the common questions people have asked me recently is "when will a new build be released and what will be in it?". The below post provides a few updates on what the ASP.NET MVC feature team has been working on, and some of the new features that will be available soon.  I'm going to do a separate blog post in the future that will cover the new ASP.NET Dynamic Data and ASP.NET AJAX feature work that is progressing along nicely as well.  All of these features (ASP.NET MVC, ASP.NET Dynamic Data, and the new ASP.NET AJAX improvements) will ship later this year and work with VS 2008 and .NET 3.5. Upcoming ASP.NET MVC MIX Preview Release We are planning to release the next public preview of ASP.NET MVC at the MIX 08 conference in a few weeks.  This build will be available for anyone on the web to download (you do not need to attend MIX to get it).  We have incorporated a lot of early adopter feedback into this release.  Below are some of the improvements that will appear with this next preview release: 1) The ASP.NET MVC Framework can be deployed in the \bin directory of an app and work in partial trust The first ASP.NET MVC preview release required a setup program to be run on machines in order for the System.Web.Mvc.dll assembly to be registered in the machine's GAC (global assembly cache). Starting with this upcoming preview release we will enable applications to instead directly reference the System.Web.Mvc.dll assembly from the application's \bin directory.  This means that no setup programs need to be run on a sever to use the ASP.NET MVC Framework - you can instead just copy your application onto a remote ASP.NET server and have it run (no registration or extra configuration steps required). We are also doing work to enable the ASP.NET MVC framework to run in "partial/medium trust" hosting scenarios.  This will enable you to use it with low-cost shared hosting accounts - without requiring the hosting provider to-do anything to enable it (just FTP your application up and and it will be good to run - they don't need to install anything). 2) Significantly enhanced routing features and infrastructure One of the most powerful features of the ASP.NET MVC framework is its URL routing engine (I covered some of these features here ). This upcoming ASP.NET MVC preview release contains even more URL routing features and enhancements.  You can now use named routes (enabling explicit referencing of route rules), use flexible routing wildcard rules (enabling custom CMS based urls), and derive and declare custom route rules (enabling scenarios like REST resources mappings, etc). We have also factored out the URL routing infrastructure from the rest of the MVC framework with this preview, which enables us to use it for other non-MVC features in ASP.NET (including ASP.NET Dynamic Data and ASP.NET Web Forms). 3) Improved VS 2008 Tool Support The first ASP.NET MVC preview had only minimal VS 2008 support (basically just simple project template support). This upcoming ASP.NET MVC preview release will ship with improved VS 2008 integration.  This includes better project item templates, automatic project default settings, etc.  We are also adding a built-in "Test Framework" wizard that will automatically run when you create a new ASP.NET MVC Project via the File->New PrGo
VS 2008 Web Development Hot-Fix Roll-Up Available ... One of the things we are trying to do with VS 2008 is to more frequently release public patches that roll-up bug-fixes of commonly reported problems.  Today we are shipping a hot-fix roll-up that addresses several issues that we've seen reported with VS 2008 and Visual Web Developer Express 2008 web scenarios. Hot Fix Details You can download this hot-fix roll-up for free here (it is a 2.6MB download).  Below is a list of the issues it fixes: HTML Source view performance Source editor freezes for a few seconds when typing in a page with a custom control that has more than two levels of sub-properties. “View Code” right-click context menu command takes a long time to appear with web application projects. Visual Studio has very slow behavior when opening large HTML documents. Visual Studio has responsiveness issues when working with big HTML files with certain markup. The Tab/Shift-Tab (Indent/Un-indent) operation is slow with large HTML selections. Design view performance Slow typing in design view with certain page markup configurations. HTML editing Quotes are not inserted after Class or CssClass attribute even when the option is enabled. Visual Studio crashes when ServiceReference element points back to the current web page. JavaScript editing When opening a JavaScript file, colorization of the client script is sometimes delayed several seconds. JavaScript IntelliSense does not work if an empty string property is encountered before the current line of editing. JavaScript IntelliSense does not work when jQuery is used. Web Site build performance Build is very slow when Bin folder contains large number of assemblies and .refresh files with web-site projects. Installation Notes For more information on how to download and install the above patch, please read this blog post here .  In particular, if you are using Windows Vista with UAC enabled, make sure to extract the patch to a directory other than "c:\" (otherwise you'll see an access denied error). To verify that this hot-fix patch successfully installed, launch VS 2008 and select the Help->About menu item.  Make sure that there is an entry that says ‘Hotfix for Microsoft Visual Studio Team System 2008 Team Suite – ENU (KB946581)’.  If you ever want to remove the patch, go to Control Panel -> Add/Remove Programs and select “Hotfix for Microsoft Visual Studio 2008 – KB946581” under Microsoft Visual Studio 2008 (or Visual Web Developer Express 2008) and click “Remove". Summary Obviously it goes without saying that we would have liked to have shipped without any bugs.  Hopefully this hot-fix enables you to quickly solve them if you are encountering them.  Thank you to those who helped us identify the causes of these issues, as well as to the group of customers who have helped us verify the above fixes the last few weeks. Note: If you do encounter issues with VS 2008 features for web development in the future, I recommend always asking for help in the VS 2008 Forum on www.asp.net .  The VS Web Tools team actively monitors this forum and can provide help. Hope this helps, ScottGo
Feb 6th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, WPF ... Here is the latest in my link-listing series .  Also check out my ASP.NET Tips, Tricks and Tutorials page for links to popular articles I've done myself in the past. ASP.NET ASP.NET Security Tutorial Series : Scott Mitchell (who wrote the excellent Data Access Tutorial Series for us last year), has recently begun a new free tutorial series focused on ASP.NET Security.  Today we published the first three article in the series on the www.asp.net site: ASP.NET Security Basics , Overview of Forms Authentication , and Forms Authentication Configuration and Advanced Topics .  For even more ASP.NET Security Information, please check out the security tutorials I've also done on my ASP.NET Tips, Tricks and Tutorials page . 10 ASP.NET Performance and Scalability Secrets : Omar Al Zabir, the CTO and co-founder of www.pageflakes.com (a Web 2.0 portal site built with ASP.NET), has written another in his excellent series of articles on ASP.NET and ASP.NET AJAX.  This article discusses tips and tricks to maximize ASP.NET performance and scalability.  To learn even more about how to build great sites using ASP.NET and ASP.NET AJAX, make sure to read Omar's excellent new Building a Web 2.0 Portal with ASP.NET 3.5 book. .NET Debugging Demos Lab : Tess Ferrandez, who is an ASP.NET escalation engineer for Microsoft support and who also posts incredible articles on the art of debugging production ASP.NET applications, has started a new tutorial series that provides a sample "buggy" application and a series of questions/problems you can work through to learn how to debug problem applications in production environments. 4 Alternative View Engines for ASP.NET MVC : The open source MvcContrib project has been adding lots of cool goodness on top of the ASP.NET MVC Framework.  Jeffrey Palermo posts about 4 alternative view rendering engines now in the project that you can use if you don't want to use the default .aspx based view engine.  BTW - I'll be doing a new post on ASP.NET MVC within the next week talking about some of the cool new features coming soon with the next refresh.  ASP.NET AJAX Boost ASP.NET Performance with Deferred Content Loading : Dave Ward continues his great articles on ASP.NET AJAX.  This article talks about how you can improve the perceived load-time of a page by using an AJAX callback to retrieve HTML content once the page loads on the client.  This approach is similar to the one I wrote about in my tip/trick post here . Build Yahoo UI Style Glowing Buttons with the ASP.NET AJAX Control Toolkit GlowButtonExtender Control: Matt Berseth continues his excellent series on using ASP.NET AJAX.  In this post he discusses how to create cool glowing button effects. Visual Studio Resolving Namespaces and Removing Unused Using Statements : David Hayden has a nice article that discusses a few Visual Studio code editing features that developers often overlook.  Visual Studio 2008 Product Comparison : Several people have sent me email in the past asking for a page that describes the differences between the various Visual Studio 2008 editions (Standard, Professional, Visual Studio Team System, etc).  This link is useful to bookmark if you want to learn more about this. Did you know...You can Shift+ESC to close a tool window: Sara Ford continues her excellent "Did you know..." VS 2008 tips and tricks series.  I confess I didn't know this one.  One productivity tip I always recommend is to really learn the keyboard shortcuts of your development tool environment well - since using them over time can yield significant productivity savings.  Click here to download a VB 2008 key bindings poster, or click here to download the C# 2008 key bindings poster equivalent.  Print them out and put them under your pillow to absorb them while you sleep. .NET The Power of Yield : Joshua Flanagan has a nice article on one of the coolest, yet underused, feature of C# in .NET 2.0 Go
MIX08 ... MIX is a Microsoft web development conference we hold in Las Vegas each year.  MIX tends to be a pretty fun event, both because it covers cutting edge content (we used MIX07 to announce our Silverlight plans), and also because it tends to attract a really diverse set of attendees (including both those who use Microsoft technology today, and a large % of attendees who don't).  The conference structure includes a healthy blend of sessions and interactive panels, and the layout and organization is designed to facilitate great conversations. This year's MIX is being held March 5th-7th in Las Vegas.  Ray Ozzie and I are both giving keynotes the first day of the event, and Steve Ballmer and Guy Kawasaki will be doing a keynote the second day of the event. The conference (and especially my keynote) is going to cover a lot of new web technology.  Attendees will be able to attend sessions covering: IE 8 IIS 7.0 ASP.NET (including ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, and ASP.NET Dynamic Data)  VS 2008 and Expression Studio WPF Silverlight 2 And much more.... Channel 9 recently did an interview with me where I talked about some of these new technologies.  In Part 1 of the interview I talked about IIS7, and in Part 2 of the interview I talked about ASP.NET, WPF and Silverlight 2. Register Soon Or You'll Miss Your Chance MIX is held at a smaller venue then some of our larger events like TechEd and PDC.  This gives the conference a more intimate feel (which is fun).  It also means that it sells out each year, and once it is sold out it is really sold out.  Last year I received about 50 emails from people begging for tickets after it was full, and many people even flew to the event hoping to somehow be let in at the door (only to be unfortunately told they couldn't get in).  Unfortunately because of size constraints (and fire marshal restrictions) once it is sold out there really are no more tickets to be had.  Even my own team members get turned away if they haven't registered in time. This year's registration is filling up faster than any of the previous MIX conferences.  If you want to attend I highly recommend registering really soon to ensure you can go.  You can learn more about the event and register online here . Hope to see some of you there - it is going to be fun.... ScottGo
VS 2008 Web Deployment Project Support Released ... This past Friday we released the final RTW (release to web) support for VS 2008 Web Deployment projects.  You can learn more about it and download it for free here .  Web Deployment projects can be used with either the "ASP.NET Web Site" or "ASP.NET Web Application Project" options built-into VS 2008, and provide a few additional build, packaging and deployment options for you to use.  You can read an old tutorial post of mine here to learn more about they work. The VS 2008 Web Deployment Project version supports all of the existing features provided by the VS 2005 web deployment download.  It also adds additional support for: Easily migrating VS 2005 Web Deployment Projects to VS 2008 Web Deployment Projects Replacing output only if web deployment builds succeed IIS7 Support This RTW (release to web) version fixes bugs and adds some small features that people requested in the December CTP version we released last month.  Please make sure to run setup and uninstall any older version of the VS 2008 Web Deployment Project support you have installed before installing this final version.  VS 2008 Web Deployment Projects can be installed side-by-side with VS 2005 Web Deployment Projects - so there is no need to uninstall the VS 2005 version if you are still using it with older projects. More Deployment Features In my last link-listing post I pointed at the new Web Deployment Tool being released by the IIS team.  This tool works with both IIS6 and IIS7 and enables automated copy deployment, file synchronization, and migrating of applications onto web servers.  If you are looking for a great way to automate the deployment of your ASP.NET applications onto remote servers then this tool is definitely one to check out.  You can use VS 2008 Web Deployment Projects as a post-build step within your build environment to fix up last minute deployment settings - and then use the IIS Web Deployment tool to copy them remotely onto server machines.  Alternatively you can also use the IIS Web Deployment Tool to copy vanilla "ASP.NET Web Site" or "ASP.NET Web Application" projects to remote machines (no VS 2008 Web Deployment Project required). To learn more about the new IIS Web Deployment tool, read the walkthroughs at the bottom of this page (in particular the "Introduction to MS Deploy" one).  I will also be doing a blog post in the future that talks more about how to use it to automate your web server deployments. Hope this helps, ScottGo
Jan 24th Links: ASP.NET, ASP.NET AJAX, Visual Studio, .NET, IIS ... I just arrived back from my trip from Asia, and decided to celebrate (since I'm jet-lagged and can't sleep) with a new post in my link-listing series .  You can check out my ASP.NET Tips, Tricks and Tutorials page for links to popular articles I've done myself in the past. ASP.NET Extending the GridView to Include Sort Arrows : Scott Mitchell has a nice article that describes how to add a visual indicator to the GridView control to indicate the current sort order on columns. Using ASP.NET 3.5's ListView and DataPager Controls: Sorting Data : Scott Mitchell continues his ListView control series with a good article on enabling sorting scenarios with the new ListView control. Building a Grouping Grid with the ListView and LinqDataSource Controls : Matt Berseth has an awesome post that shows off using the new ListView control and LinqDataSource controls to build a hierarchical grouping grid.  A post to bookmark. Using the ListView, DataPager and LinqDataSource Controls : Matt Berseth has a good tutorial post that shows off using these new controls to join data from two database tables using LINQ. Some ASP.NET 3.5 ListView Control Examples : Mike Ormond has a nice post that provides a number of samples that show how to use the new ASP.NET ListView control.  For even more ListView articles, check out my last link-listing post which pointed to a bunch of them. Large File Uploads in ASP.NET : Jon Galloway has a nice post that provides some good details on handing large file uploads using ASP.NET. ASP.NET AJAX Four ASP.NET AJAX JavaScript UI Methods You Should Learn : Dave Ward has another great post in his series about ASP.NET AJAX's client-side JavaScript Helper Methods . Five Tab Themes Created for the ASP.NET AJAX Control Toolkit : Matt Berseth posts some really cool themes created for the ASP.NET AJAX Control Toolkit's Tab control. Very slick! CNN Style Scrolling Ticker with the Marquee Toolkit Control : Matt Berseth posts another great one that shows how to implement a scrolling marquee UI using the ASP.NET AJAX Control Toolkit. Visual Studio Did You Know?: Lisa Feigenbaum from the VB team has posted a really cool series of blog posts that talk about some of the new VS 2008 editor and IDE features.  Read Part 1: Intellisense Everywhere , Part 2: IntelliSense is now Transparent , Part 3: Ctrl+Tab to Navigate Windows , Part 4: What You Can Do with Debugger DataTips , and Part 5: VB IntelliSense now filters as you type . Web Server Settings for ASP.NET Web Application Projects can now be stored per user as well as per project : The VS Web Tools Team has a nice post that describes how you can now store web server settings per-user instead of per-project.  This is very useful for multi-developer scenarios (where you don't want to check-in these values into source control). Using Ctrl-Break to Stop VS Building : Steven Harman points out a cool tip/trick, which is that you can use the Ctrl-Break key within Visual Studio to kill the current compilation build.  A useful tip if you've accidentally kicked off a long build or get tired waiting for it to finish. Visual Studio 2008 Trouble Shooting Guide : If you run into any issues installing VS 2008, make sure to check out this blog post.  It details a bunch of common causes of failures, and how to fix them. .NET Marshaling between Managed and Unmanaged Code : Yi Zhang and Xiaoying Guo from my team in Shanghai have written a great MSDN article that describes how to use the marshaling interop features of the CLR to call native code.  One of the tools they highlight is an awesome P/Invoke Interop Assistant application they built that makes it much, much easier to generate p/invoke interop signatures when calling native methods.  A must-have tool for anyone doing native/managed interop! .NET Framework 3.5 Poster : Brad Abrams posts about the cool new .NET Framework 3.5 posters now available for download (now in multiple file formats). IIS Microsoft WGo
.NET Framework Library Source Code now available ... Last October I blogged about our plan to release the source code to the .NET Framework libraries , and enable debugging support of them with Visual Studio 2008.  Today I'm happy to announce that this is now available for everyone to use. Specifically, you can now browse and debug the source code for the following .NET Framework libraries: .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc). ASP.NET (System.Web, System.Web.Extensions) Windows Forms (System.Windows.Forms) Windows Presentation Foundation (System.Windows) ADO.NET and XML (System.Data and System.Xml) We are in the process of adding additional framework libraries (including LINQ, WCF and Workflow) to the above list. I'll blog details on them as they become available in the weeks and months ahead. Enabling Reference Source Access in Visual Studio 2008 Enabling .NET Framework source access within Visual Studio 2008 only takes a few minutes to setup. Shawn Burke has a detailed blog post that covers the exact steps on how to enable this in more depth here . If you run into problems or have questions setting it up, please post a question in the Reference Source Forum on MSDN here . Stepping into .NET Framework Library Source Once you follow the configuration steps in Shawn’s post above, you’ll be able to dynamically load the debug symbols for .NET Framework libraries and step into the source code. VS 2008 will download both the symbols and source files on demand from the MSDN reference servers as you debug throughout the framework code: Developer comments are included in the source files. Above you can see an example of one in the Dispose method for the Control base class. Sometimes you'll see comments that reference a past bug/tracking number in our bug/work-item tracking database that provides additional history about a particular code decision. For example, the comment above calls out that a particular field shouldn't be nulled to maintain backwards compatibility with an older release of the framework, and points to a backwards compatibility bug that was fixed because of this. Reference License The .NET Framework source is being released under a read-only reference license. When we announced that we were releasing the source back in October, some people had concerns about the potential impact of their viewing the source. To help clarify and address these concerns, we made a small change to the license to specifically call out that the license does not apply to users developing software for a non-Windows platform that has “the same or substantially the same features or functionality” as the .NET Framework. If the software you are developing is for Windows platforms, you can look at the code, even if that software has "the same or substantially the same features or functionality" as the .NET Framework. Summary We think that enabling source code access and debugger integration of the .NET Framework libraries is going to be really valuable for .NET developers. Being able to step through and review the source should provide much better insight into how the .NET Framework libraries are implemented, and in turn enable you to build better applications and make even better use of them. Hope this helps, ScottGo
Visiting China, South Korea and Japan the Next Two Weeks ... This Friday I'm leaving for a 10 day trip to Asia.  Traveling on business doesn't usually get me excited (I was on a plane ~70 times last year), but I am really looking forward to this trip as it will be my first trip to Asia.  I'll be visiting China (Beijing, Shanghai, Shenzhen), South Korea (Seoul), and Japan (Tokyo), and I will be presenting at events, meeting with customers, and visiting one of the development teams in my group that is based in China.  I'm also hoping to get a chance to see immerse myself a little in the countries. Below are some details on the presentations I'll be doing during the trip if you are interested in attending or learning more: China (Beijing, January 13th) China (Shanghai, January 14th) <= Update South Korea (Coex Conference Center 310 on January 17th) Japan (Izumi Garden Gallery in Roppongi, Tokyo on January 21st) I've been extremely fortunate the last year to have had some great people volunteer to translate my blog posts into other languages (including Chinese and Japanese).  Below are links to a few of the feeds if English isn't your first language: My Blog Posts in Chinese My Blog Posts in Japanese My Blog Posts in Spanish I'm hoping to meet Xuegen Jin (who has been translating my posts to Chinese and hosting them on HongChao Wang's site) and Chica (who has been translating my posts into Japanese) on the trip and have the chance to thank them personally. :-) Thanks, ScottGo
Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library) ... LINQ (language integrated query) is one of the new features provided with VS 2008 and .NET 3.5.  LINQ makes the concept of querying data a first class programming concept in .NET, and enables you to efficiently express queries in your programming language of choice. One of the benefits of LINQ is that it enables you to write type-safe queries in VB and C#.  This means you get compile-time checking of your LINQ queries, and full intellisense and refactoring support over your code: While writing type-safe queries is great for most scenarios, there are cases where you want the flexibility to dynamically construct queries on the fly.  For example: you might want to provide business intelligence UI within your application that allows an end-user business analyst to use drop-downs to build and express their own custom queries/views on top of data.  Traditionally these types of dynamic query scenarios are often handled by concatenating strings together to construct dynamic SQL queries.  Recently a few people have sent me mail asking how to handle these types of scenarios using LINQ.  The below post describes how you can use a Dynamic Query Library provided by the LINQ team to dynamically construct LINQ queries. Downloading the LINQ Dynamic Query Library Included on the VS 2008 Samples download page are pointers to VB and C# sample packages that include a cool dynamic query LINQ helper library.  Direct pointers to the dynamic query library (and documentation about it) can be found below: VB Dynamic Query Library (included in the \Language Samples\LINQ Samples\DynamicQuery directory) C# Dynamic Query Library (included in the \LinqSamples\DynamicQuery directory) Both the VB and C# DynamicQuery samples include a source implementation of a helper library that allows you to express LINQ queries using extension methods that take string arguments instead of type-safe language operators.  You can copy/paste either the C# or VB implementations of the DynamicQuery library into your own projects and then use it where appropriate to more dynamically construct LINQ queries based on end-user input. Simple Dynamic Query Library Example You can use the DynamicQuery library against any LINQ data provider (including LINQ to SQL , LINQ to Objects, LINQ to XML, LINQ to Entities, LINQ to SharePoint , LINQ to TerraServer , etc).  Instead of using language operators or type-safe lambda extension methods to construct your LINQ queries, the dynamic query library provides you with string based extension methods that you can pass any string expression into. For example, below is a standard type-safe LINQ to SQL VB query that retrieves data from a Northwind database and displays it in a ASP.NET GridView control: Using the LINQ DynamicQuery library I could re-write the above query expression instead like so:   Notice how the conditional-where clause and sort-orderby clause now take string expressions instead of code expressions.  Because they are late-bound strings I can dynamically construct them.  For example: I could provide UI to an end-user business analyst using my application that enables them to construct queries on their own (including arbitrary conditional clauses). Dynamic Query Library Documentation Included with the above VB and C# Dynamic Query samples is some HTML documentation that describes how to use the Dynamic Query Library extension methods in more detail.  It is definitely worth looking at if you want to use the helper library in more depth:   Download and Run a Dynamic Query Library Sample You can download and run basic VB and C# samples I've put together that demonstrate using the Dynamic LINQ library in an ASP.NET web-site that queries the Northwind sample database using LINQ to SQL: Basic Dynamic LINQ VB Sample Basic Dynamic LINQ C# Sample You can use either Visual Web Developer 2008 Express (which is free) or VS 2008 to open and run them. Other Approaches to ConstructGo
ASP.net.com Community Links
Handling the back button from server code ... One common drawback of Ajax applications is the loss of the browser's back button. This article by Bertrand Le Roy shows how to restore it using ASP.NET 3.5 Extensions Preview and server code.Go
Introduction to SubSonic ... An introduction to SubSonic, a data-layer builder.Go
Adding Multiple Rows in the GridView Control ... A while back an article was published on www.gridviewguy.com which explained how to add a single row at the bottom of the GridView control. You can read the article using this link. Many readers were interested in the idea of adding multiple rows to the GridView. This article explains how to add multiple rows to the GridView control.Go
Creating Derived Controls ... In the previous lesson you developed a composite control by assembling existing server controls. There is one more technique to add to the functionality of the existing controls. You can extend existing controls and add/customize functionality as per your requirement. This way you avail the core functionality of the base control to create a tailor-made control meeting your requirement. The designer features of Visual Studio such as smart tags and dialogs that are available for the base control continue to remain available for the derived control also.Go
Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 1 ... Microsoft released the first CTP of ASP.NET 3.5 Extensions and it includes ASP.NET MVC Framework as one of the main extensions for ASP.NET 3.5. In the first part of this article series about building a simple blog engine with ASP.NET MVC and LINQ, Keyvan introduces the MVC pattern, ASP.NET MVC Framework, and the fundamentals of a simple blogging engine.Go
Introduction To LINQ ... This article is an introduction to LINQ and provides examples of using LINQ to query objects, XML, and relational data.Go
Developing for the iPhone ... Learn some basic tips and tricks for developing iPhone-compatible ASP.NET web applications.Go
Serve extensionless URL without using ISAPI handler or wildcard mapping ... Serve extensionless URLs like www.pageflakes.com/omar from ASP.NET without using a custom ISAPI handler or expensive IIS 6.0 wildcard mapping. A fast and simple 404 handler does the trick.Go
Creating an Online Exam Using LINQ to Classes Part 2 ... Some time back an article was published on www.gridviewguy.com , “Creating an Online Exam Using LINQ to Classes Part I” which introduced the basic design involved in creating an online exam. In this article we will take one step further and create unit tests to test certain features of the application.Go
A First Look at the Dynamic Data Engine—the DynamicGridView Control ... Dino Esposito introduces the ASP.NET DynamicGridView Control.Go
CodeProject.com ASP Links
ASP.NET Ajax Chat Application ... A chat room page using ajax and Linq to xmlGo
How to use google and other tips for finding programming help ... A primer for people looking to learn to help themselves find answers to programming questionsGo
Inside Vista Sidebar ... An insider look at the Vista Sidebar. Learn how the Sidebar works and how to optimize your Gadgets development.Go
Drag and Drop with Persistence using JQuery ... How to create a drag and drop functionality to add users to a roomGo
Hotmail-like Mouse Over & Mouse Out Effects on GridView ... This article describes how to apply client-side mouse over & mouse out effects on the GridView’s rows.Go
ASProxy: Surf in the web invisibly using ASP.NET power ... A powerfull web proxy that able you pass through the blocked web pages.Go
Web Based MP3 Player & CMS ... An article Outlining a Recent Web MP3 ProjectGo
Extending Cuyahoga FullText Indexing (Lucene.NET) ... In this article we will extend classes in Cuyahoga.Core.Search namespace in order to provide more generic full text indexing serviceGo
Facebook Application Development with FBML, FBJS, ASP.NET and C# ... build simple and sophisticated Facebook App with FBML, ASP.NETGo
Drop Down Calendar for the Web ... a javascript file that provides an easy to use drop down calendar for selecting dates on web pagesGo
MSAgent Style Critters for your Web Pages ... MSAgent Style Critters for your Web PagesGo
ASP.NET Ajax Under-the-hood Secrets ... Performance tips and hard-core tricks that change core runtimes, not for the faint-heartedGo
Organization Chart Generator ... An article on the development of an Organization Chart generator.Go
AdHawkMailer an ASP.NET Component for Sending Email in VB.NET ... AdHawkMailer an ASP.NET Component for Sending Email in VB.NETGo
DotNetSlackers.com Links
Book Giveaway: ASP.NET AJAX Programming Tricks ... I am happy to announce that were giving away some copies of ASP.NET AJAX Programming Tricks. You can enter into the book giveaway using the link below. The book giveaway will end March 24th so hurry on over to Magma Interactive and enter the contest. All winners are randomly chosen. Magma Interactive, LLC Book Giveaway Form... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Testing ASP.NET MVC Controllers with Typemock Isolator ... Scott Hanselman posted his notes and slides (and movies!) from his talk on the ASP.NET MVC framework, where he also mentioned and shows how he's write unit tests for the MVC framework in ASP.NET. Scott has examples both in Moq and Rhino.Mocks on how to write these tests, so I created the parallel thing for Typemock Isolator. If you use Typemock Isolator and want to test ASP.NET MVC - you can go right here and use the MvcMockHelpers class. ... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
New ASP.NET Technologies Released around MIX08 ... Scott Galloway, PM Extraordinaire on the UI team, compiled this cool list of resources concerning the cool stuff for Web Developers at MIX08. You can also posthumously attend MIX08 here http://visitmix.com/ Downloads: - MVC Preview 2 is live at: o English - United States o http://download.microsoft.com/download/7/9/a/79a7153c-4cb4-4898-a984-6f01d565cba9/AspNetMVCPreview2-setup.msi - Silverlight tools (includes the ASP.NET server controls for Silverlight) is live at: o http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&displaylang=en... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Code Trip is on its way and awesome video. ... Watch the new video for the quick off of Code Trip: http://thecodetrip.com/1/thecodetrip-film-at-11 The Code Trip crew stops by the Microsoft office in Irvine to show off the latest and greatest from MIX08 and the 2008 launch wave of developer technologies. If you are developer around the OC, stop by to learn about the new Visual Studio 2008 at: 3 Park Plaza Suite 1800 Irvine, CA 92614 Some pictures of the bus here. Cheers AlPosted from http://weblogs.asp.net/albertpascual... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Ease your MVP ... This article describes how MVP integration in ASP.NET 2.0 can become easier with .NET generics and Hierarchy in Presenters... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
ASP.NET Chat Application ... A chat room page using ajax and Linq to xml... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Mix08 Day 2 ... I attended 3 pretty good sessions and the keynote with SteveB and Guy Kawasaki. I'll recap them below: Building Great AJAX Applications from Scratch Using ASP.NET 3.5 and Visual Studio 2008 This session felt like a recap session on some of the technologies the client-side AJAX support. I am constantly impressed by the javascript intellisense support that is avialble inpeople are already using in their day-to-day development. You can see his own recounting of the session here . He talked about Muti-targeting, CSS support and LINQ to SQL for data access. He next walked through a pretty simple example of using a server-side UpdatePanel to reduce screen flicker. The talk started getting interesting when he demo-ed VS 2008. Once great thing he pointed out is that if you don't have javascript enabled in IE, IE8 is now able to turn it on by itself when you're in a debugging experience. He finished the session by showing off the auto-complete textbox that is part of the AJAX toolkit. Always cool to see how cleanly these tools work, at least in a demo setting. Keynote with Guy Kawasaki and Steve Ballmer The keynote was again preceded by our Johnny Cash impersonator. It turns out the kid was only 15... he could have fooled the majority of the audience that he was much older. During the talk, Steve talked about how much MS wants Yahoo. You get the impression that it is just a matter of time or stock price before the deal happens. Steve hinted at what would change if the merger would happen, pointing out that there is no need to have 2 searches, and 2 mail applications. He went on to talk about Apple. On one hand, he knocked Guy Kawasaki's macbook air and their model for charging 30 center on the dollar for apps on the iphone., but on the other hand, was very happy that Apple licensed ActiveSync. Lastly, Steve acknowledged that Vista created, and continues to create a bottleneck around other initiatives at Microsoft, perhaps explaining why IE has felt a bit of competition from Firefox. Lastly, Steve got the crowd riled up with yet another monkey dance, chanting the greatness of web developers this time. Steve's comment about a 50 cent cut at the end of the rant was a funny jab at apple. Social Networks: Where Are They Taking Us? This was a good panel discussion with some people from Plaxo, Facebook, amongst others. I attended because Guy Kawasaki was again the moderator. The main thing I got out of the talk was the sense of one trusted online presense once has. The goal is to take the anonymity that people hide behind in the web away. One way they all agreed might help is pushing the OpenID spec along. It's sounds eerily similar MS's hailstorm , which has been around since the 90's. Developing ASP.NET Applications Using the Model View Controller (MVC) Pattern This was probably one of the most entertaining sessions at Mix, delivered by Scott Hanselman . I like the way MVC sits on top of ASP.NET. It is structured in a way of take as much or as little of it as you like. Looking at it, I don't see it as the silver bullet for all development, but it seems to fit very nicely into the TDD workflow. If you're looking to get a application quickly to market, and like working with TDD, MVC seems to be the answer. If you're working in a corporate environment with a lot of custom controls or datagrids, sticking with raw ASP.NET might work better. Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
RadControls for ASP.NET AJAX and validation ... Our good friendPeter Blum recentlyannounced official support for our upcomingRadControls for ASP.NET AJAX (aka "Prometheus"). All customers that are using hisData Entry Suite will be able to integrate validation into the Telerik controls almost invisibly and without much pain and effort. For those of you that are not familiar with Peter Blum, he is an ASP Insider and the author of the BEST set of validation controls on the market. I don't have any reservations to recommend his products as they are well done, very stable and very well documented. Enjoy! Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Facebook Application Development with FBML, FBJS, ASP.NET and C# ... build simple and sophisticated Facebook App with FBML, ASP.NET... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Bookmark: Installation Tips for Silverlight Tools Beta 1 for Visual Studio 2008 ... http://weblogs.asp.net/bradleyb/archive/2008/03/06/installation-tips-for-sivliverlight-tools-beta-1-for-visual-studio-2008.aspx Should Silverlight 2 Beta 1 be that difficult to installed that in the Mix 08, people were helping other people installing it? Cheers AlPosted from http://weblogs.asp.net/albertpascual... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Improving ASP.NET User Interfaces with the AJAX Control Toolkit and Silverlight ... There are many controls and extenders provided by the AJAX Control Toolkit that can be used to enhance ASP.NET user interfaces. The ValidatorCallout is used with the existing validation controls to show a nice box with the validation message that points to the field in error. The CollapsiblePanel provides an area of the screen that can be collapsed to hide the content but leave a title bar with the header. The ModalPopup displays a popup window and disables the remainder of the page. There are many... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
What will come with RadGrid ""Prometheus"" Q1 2008? ... In a series of posts I will walk through some of the new features for RadGrid for ASP.NET AJAX Q1 2008 . Here is the first part: - Global ItemTemplate for GridTableView - (CardView ): Using ItemTemplate you have ability to replace all GridDataItem GridEditableColumns cells with single cell. Example: < telerik:RadGrid ID = "RadGrid1" runat = "server" > < MasterTableView > < ItemTemplate > Master </ ItemTemplate > < DetailTables > < telerik:GridTableView runat = "server" > < ItemTemplate > Detail </ ItemTemplate > </ telerik:GridTableView > </ DetailTables > </ MasterTableView > </ telerik:RadGrid > - NestedViewTemplate (detail table template): Now you can design and present master/detail data in more flexible way using DetailsView , RadChart or any other ASP.NET component/plain html . Example: < telerik:RadGrid ID = "RadGrid1" runat = "server" > < MasterTableView > < NestedViewTemplate > Details for:< %# Eval("CustomerID") % > </ NestedViewTemplate > < DetailTables > ... - Footer aggregates : You can specify now Aggregate property with following values: Sum , Min , Max , Last , First , Count , Avg & Custom for every GridBoundColumn and the grid will calculate these aggregates if ShowFooter is set to true . In case of Custom aggregate the grid will raise event OnCustomAggregate where you can set desired result using e.Result . RadGrid will calculate aggregates by default on the entire data source and will respect filtering . Example: ... < telerik:GridBoundColumn Aggregate = "Count" DataField = "CustomerID" DataType = "System.String" HeaderText = "CustomerID" SortExpression = "CustomerID" UniqueName = "CustomerID" > </ telerik:GridBoundColumn > ... - Group footers & aggregates : You can turn on group footers using ShowGroupFooter property of GridTableView and the grid will calculate automatically all columns aggregates (if defined) for the current group. - Calculated columns : Using Expression and DataFields properties of GridCalucatedColumn you can create easily various calculations plus you can sort , group and filter these columns exactly in the same way as normal GridBoundColumn . Example: < telerik:GridCalculatedColumn HeaderText = "Total Price" UniqueName = "TotalPrice" DataType = "System.Double" DataFields = "UnitPrice, UnitsInStock" Expression = "{0}*{1}" Aggregate = "Sum" /> That's all for now! Enjoy :-) Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
ASP.NET MVC Preview 2 ... A few weeks ago, ScottGu blogged about the ASP.NET MVC Framework roadmap...    I am happy to announce that we have taken the next step on that roadmap with the availability of the ASP.NET MVC Framework update.  ASP.NET MVC Preview 2 The ASP.NET MVC Preview 2 release contains the latest version of the ASP.NET MVC framework and related Visual Studio tools support. In this release we have incorporated a ton of feedback, added some new features and enhanced the tooling... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
Mix 08 Keynote Thoughts ... So now I have eaten some lunch and I am charging my laptop in the Sandbox/OpenSpace waiting on my first breakout session. I am going to 'Developing Data Driven Applications Using ASP.NET Dynamic Data Controls'. But I wanted to jot down the things I took...(read more)... Did you know that DotNetSlackers also publishes .net articles written by top known .net Authors? We already have over 80 articles in several categories including Silverlight. Take a look: here .Go
ASP.NET.com Links
My company is hiring in Padova, Italy ... QBGROUP spa , the company I work for, is hiring new .NET (ASP.NET/AJAX) developers. If you are interested and willing to move to Padova, Italy (a city next to Venice), please drop me a line or send us your resume via our web form . Fluency in written and spoken Italian language is a prerequisite.Go
2008 Scripting Games - My solutions ... Here are my solutions to the 2008 Scripting Games scripting competition. This is a rather large post but I decided one post would be better than posting them all individually, this way they will all be in one place when I want to find them later. I had fun and I learned a lot of new cool things about Powershell while working through the problems. If you are trying to learn Powershell I would definitely recommend working through them to force yourself to learn the details. Disclaimer: These script samples are by no means perfect but they are the unedited solutions that I submitted so they do solve the problems. They are provided as-is and you should use them at your own risk. Powershell beginner division Event 1: Pairing Off Official Solution My Solution: # first char in card is A, 1, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K # second char in card is H - Hearts, S - Spades, C - Clubs, D - Diamonds $cards = @("7S" , "5H" , "7D" , "7C" , "KC" ); $numPairs = 0 ; for ($i = 0 ; $i -lt $cards .Length; $i ++) { for ($j = $i + 1 ; $j -lt $cards .Length; $j ++) { if ($cards [$i ][0 ] -eq $cards [$j ][0 ]) { $numPairs ++; } } } Write-Host $numPairs ; Event 2: True Type Official Solution My Solution: $fonts = Get-Item "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Fonts" $truetypes = $fonts .Property | where { $_ -match "\(TrueType\)" } Write-Host "TrueType Fonts:" $truetypes Write-Host Write-Host "TrueType: $($trueTypes.Count)" Write-Host "Total: $($fonts.ValueCount)" Event 3: Let’s Get Together Official Solution My Solution: $firstLines = dir "C:\Scripts\*.txt" | % { Get-Content $_ -totalCount 1 } $firstlines | Out-File -encoding ASCII "c:\scripts\newfile.txt" Event 4: Count Yourself In Official Solution My Solution: $c =0 Get-Content $MyInvocation .MyCommand.Definition | % { $c += $_ .Length } $c Event 5: What’s the Difference Official Solution My Solution: param([DateTime] $d ) $t = [DateTime]::Today $ts = $d - $t $ms = ($d .Month - $t .Month) + 12 * ($d .Year - $t .Year); Write-Host ("Days: " + $ts .Days) Write-Host ("Months: " + $ms ) if ($d .Day -lt $t .Day) { $ms --; } $ts = $d - $t .AddMonths($ms ) Write-Host ("Months/Days: " + $ms + " / " + $ts .Days) Event 6: Coffee Break Official Solution My Solution: $cfile = (Get-Content "C:\Scripts\coffee.txt" ) $orders = @{} foreach ($o in $cfile ) { $d , $c = $o .Split(" " ) $orders [$d ] += [int]$c ; } $orders .Remove("Office" ); $orders .GetEnumerator() | % { Write-Host ($_ .Name + " " + $_ .Value) } Event 7: Squashing Bugs Official Solution My Solution: foreach ($i in Get-ChildItem C:\Scripts -recurse) { if (($i .CreationTime -lt ($(Get-Date ).AddDays(-10 ))) -and ($i .Extension -eq ".txt" )) { Copy-Item $i .FullName C:\old $i .Name $x = $x + 1 } } "" "Total Files: " + $x Event 8: Random Guess Official Solution My Solution: $r = New-Object System.Random $low = 1 $high = 50 [int]$num = $r .Next($low , $high ) $guess = $guesses = 0 while ($num -ne $guess ) { Write-Host -NoNewline "Guess a number between $low and $high : " [int]$guess = Read-Host if ($guess -lt $num ) { Write-Host "Too Low!" $low = $guess } else { if ($guess -gt $num ) { Write-Host "Too High!" $high = $guess } } $guesses ++ } Write-Host "Random number was $num" Write-Host "Total guesses: $guesses" Event 9: Pool Party Official Solution My Solution: $adOpenStatic = 3 $adLockOptimistic = 3 $objConnection = New-Object -comobject ADODB.Connection $objRecordset = New-Object -comobject ADODB.Recordset $objConnection .Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source= c:\scripts\pool.mdb" ) $objRecordset .Open("Select * from SwimmingPool" , $objConnection ,$adOpenStatic ,$adLockOptimistic ) do { Write-Host (" Name: " + $objRecordset .Fields.Item("Customer" ).Value) [int]$length = $objRecordset .Fields.Item("Length" ).Value; [int]Go
A Generic ViewManager Helper Class ... Hi All, Following on from something I saw from Scott Guthrie, a ViewManager which allows you to render a usercontrol and return the generated HTML. I decided to implement a more generic approach which allowed you to set any properties of your custom usercontrol and then render it. So you would use it like so: //Init the viewmanager ViewManager<WebUserControl1> man = new ViewManager<WebUserControl1>("~/WebUserControl1.ascx"); We now have access to the control the manager is rendering through the Control property and can set its properties directly like so: man.Control.Name = "bob"; man.Control.AnotherProperty = "test"; Then finally you call the render method on you viewmanager to get the generated HTML: Response.Write(man.Render()); Basically the same thing that Scott has done but a little more generic and allows you to set any property of the control you need to render. The code for the ViewManager is below: public class ViewManager<T> where T : Control { #region Properties private T _control = default(T); /// <summary> /// Gives you access to the control you are rendering allows /// you to set custom properties etc. /// </summary> public T Control { get { return _control; } } // Used as a placeholder page to render the control on. private Page _holder = null; #endregion #region Constructor /// <summary> /// Default constructor for this view manager, pass in the path for the control /// that this view manager is render. /// </summary> /// <param name="inPath"></param> public ViewManager(string inPath) { //Init the holder page _holder = new Page(); // Create an instance of our control _control = (T)_holder.LoadControl(inPath); // Add it to our holder page. _holder.Controls.Add(_control); } #endregion #region Rendering /// <summary> /// Renders the current control. /// </summary> /// <returns></returns> public string Render() { StringWriter sw = new StringWriter(); // Execute the page capturing the output in the stringwriter. HttpContext.Current.Server.Execute(_holder, sw, false); // Return the output. return sw.ToString(); } #endregion } Thanks StefanGo
Exploring Asp.net Ajax Client Side Library ... Although javascript is truly not an object oriented languange, microsoft with the release of client side framework for ajax, had really made working with javascript much easier. Today i will explore the concepts for javascript intellisense, notifying asp.ne ajax framework of any external client side libraries and how to create classes and use inheritance to extend those classes. To start off i will create a simple class called person in the javascript file called Person.js. Person class will contain a property called Name and a methods called Print. At the top of the file you will notice a comment which includes MicrosoftAjax.js. This directive is used by visual studio 2008 to provide you intellisense for the microsoft ajax library. Intellisense can simply be provided by adding the comment directive at top of your JavaScript file. Notice that we using the name attribute to reference a JavaScript file that is embedded in an assembly called System.Web.Extensions.dll. We create a person class by first initializing the name private variable in the constructor which is typically a function. The naming convention is irrelevant in terms of javascript because javascript has no notion of private variable. However by attributing private variables with underscore, intellisence recognizes it as private variable and ensures that its not visible outside the scope of the class. Next down we go ahead and create getter and setter for the name property and create a method called Print which simply prints the name variable using alert box. After creating the class we go ahead and register the class with the asp.net ajax client side libraray by passing the name of the class in the registerClass method. registerClass happens to be a method defined on the Type object. We then finally notify the ajax client side framework that we have finished loading this javascript file. It is recommended practice to call notifyScriptLoaded on every javascript file to notify asp.net ajax. We will move forward by creating another class by extending Person class with class Student. Student will have one extra property called SSN and will override the Print method. Lets drill through the Student javascript class. We wont be covering all the details about the class except for few noticeable items worth mentioning. First notice the comment directive for intellisence uses path variable instead of name and that is because the javascript file we are trying to reference is not embedded in the assembly and belongs to our project. We are also making use of a concept introduced by asp.net ajax client side library called namespace registration. Concept of namespaces only exists in C# and vb.net or other programming langauges. Namespaces helps in preventing naming conflicts by keeping related classes together. The concept was great enough for Microsoft to introduce the registernamespace method in the client side library. It allows you add a particular class to the namespace registered above. After registering we go ahead and add a property called ssn and override the print method defined in the person class. In order to access a property defined in the base class, we make use of callBasemethod passing in the name of the method whose value we like to get and then concatenating the results with ssn variable declared inside the Student class. We then go ahead and regsiter the class with ajax client side library but this time we use the second overload which lets u specify the class you are inheriting from which happens to be People.Person class. Now that we have those two classes ready we can go ahead and create instances of Student class and call Print method to display the result. Here is how the code looks like. There is not much to talk about in this code except that we are registering the two JavaScript files with scriptmanager and then inside the pageload function we create an an instance of Student class. We then assign the values to NamGo
GUVSM Next Meeting: Rod Paddock from CoDe Magazine ... More info @ www.guvsm.net Prochaine assemblée: lundi 10 mars Conférencier: Rod Paddock, éditeur de CoDe Magazine, Seattle USA(English presentation) Part 1: News from Mix08 In the first part of his talk, Rod Paddock will report on the announcements made at Mix08 the week before. Mix is the Microsoft conference dedicated to Web development. Part 2: Top 10 NET Open Source tools The title says it all. This session will cover some of the best open source project for .NET developers. Unit testing, version control, control kits, AJAX tools and so on. This session will cover a plethora of open source .NET projects. Rod is president and founder of Dash Point Software, Inc. DPSI is an award winning software company based in Seattle, WA, specializing in application development and software training. Dash Point specializes in Visual Studio .NET, VB 6, Visual FoxPro, and SQL Server development. Dash Point Software was the winner of the 1999 Visual FoxPro Excellence Award and a finalist in 1998. Dash Point was also a finalist in 1996 at Windows World Open. Rod has been a very popular speaker at a wide variety of developer conferences in North America and Europe since 1995. His most recent speaking appearance was at the XML Connections conference in October 2002. Rod is the editor for CoDe Magazine and his writing credits include articles for database publications such as Data Based Advisor, FoxTalk and Dbase Advisor. He has also authored a number of books including Visual Basic 5 for Web Development, Visual Basic 6 for Web Development, and Visual FoxPro 6.0 Enterprise Development. Rod is also the V.P. of Technology for Red Matrix Technologies and the architectural visionary behind the DataClas middle-tier component and SQLAudit product lines.Go
MSDN and Version-Specific Content ... Can anyone point to me which one is the correct procedure to create a custom exception class? "Do not derive user-defined exceptions from the Exception base class. For most applications, derive custom exceptions from the ApplicationException class." - http://msdn2.microsoft.com/en-us/library/seyhszts(vs.71).aspx "For most applications, derive custom exceptions from the Exception class. It was originally thought that custom exceptions should derive from the ApplicationException class; however in practice this has not been found to add significant value." - http://msdn2.microsoft.com/en-us/library/seyhszts.aspx If you look close enough you will notice the way the content page was built. One was done when the current version was .NET 1.1 and the other one when .NET 2.0 was out, which still applies to the .NET 3.5. So, next time you come searching for content at MSDN, it is a good practice to see to what version it applyies.Go
Mix08: Steve Ballmer in the WideOpen Web ... Seeing the CEO of a large company answering non scripted questions from an audience is remarkable. Too bad people will only remember this:Go
Mix08: Party in the WideOpen Web ... While Laurent Duveau's French (from south of France) accent was a hit with the ladies at the Mix08 attendees party at Tao , my French Canadian accent only got the attention of this Rum & Coke.Go
Mix08: Ben and Jerry in the WideOpen Web ... Beside Elvis, I had a chance to meet other celebrities in Vegas like the famous Ben & Jerry . Frankly, they are a little annoying but give 'em a glass of bourbon (the cheap stuff you know) and they go away annoying other poor souls.Go
Mix08: The WideOpen and Deep Zoom Web ... One of the coolest demos shown at the Mix08 keynote was the Hard Rock Cafe Memorabilia Website created by the folks at Vertigo using SilverLight 2 Beta 1. It is using a technique called Deep Zoom. Very cool and impressive. http://memorabilia.hardrock.com/ Check the keynote and Scott Stanfield's session on Deep Zoom here:http://sessions.visitmix.com/Go










have suggestions for the site?
snappy@alligatortags.com