Alliagator Tags Archive for Tuesday, March 11 2008



DotNetKicks.com Links
Add Social Bookmarks links to dotnetblogengine ... Added a bunch of good looking social bookmarks for the blogengine. This is a major upgrade to dannydouglass's extension. Pretty cool.Go
Twitter App for BlogEngine.net ... Amazing little app for the Blogengine allows you to import your twitter life with blogengine.netGo
Using the ComponentController in ASP.NET MVC CTP 2 ... ASP.NET MVC CTP 2 shipped with a new controller class which you may have missed. The ComponentController allows you to call a controller action from within the page itself.Go
skmMenu for Framework 2.0 (with bug fix for Firefox) ... I find skmMenu control to be handy and simple compared to asp:Menu control. I have recompiled the menu with bug fix for Firefox. Thanks Chris (http://weblogs.asp.net/cfrazier) for javascript help.Go
CSS - Creating icons for web page using CSS & XHTML ... This article tells that how to make icons using CSS and XHTML, which we can use in our asp.net websites.Go
Site Wide User Notification Server Control ... Some of you may have read my previous post Creating a Simple Site Wide User Notification Pattern. Upon a revision round of thinking, I thought it may be better to actually have a server control. This would offer some significant advantages, the biggest one being that we could drop the BaseMasterPage. Having the control be a strongly typed server control, we could find it on the page by it's type. We would also only have one place to go to maintain the code, rather than digging through a user controls directory along with the App_Code directory.Go
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
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
Why my ASP.NET AJAX forms are never submitted twice | EncosiaGo
Top 10 Best Practices for Production ASP.NET Applications - Daptivate > by Kyle BeyerGo
Asp.NetGo
MIX07 /sessionsGo
Building a Simple Blog Engine with ASP.NET MVC and LINQ - Part 1: ASP AllianceGo
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
ScottGu's Blog : Tip/Trick: Url Rewriting with ASP.NETGo
Solution to ASP.NET Form - PayPal ProblemGo
ASP.NET WikiGo
DevASP.NET for ASP.NET, VB.NET, XML and C# (C-Sharp) DevelopersGo
Coolite Inc. - ASP.NET Web ControlsGo
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
ASP.NET AJAX meets Virtual Earth – Part One ... Get up to speed with ASP.NET AJAX by building a simple Virtual Earth mashup.Go
File Denial ... Learn techniques for letting authorized users download files from your ASP.NET web site while keeping unauthorized users out!Go
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
CodeProject.com ASP Links
Schemaless C#-XML data binding with VTD-XML ... Agile, efficient XML data binding without schemaGo
ASP.NET Splitter Bar - Resize panels, table cells, and controls. ... VwdCms.SplitterBar is a server control that allows you to easily add resizing to your web page layout, now supports both vertical and horizontal resizing.Go
ScanFree ... A program will grade a test from a scanned sheet of paperGo
Localized, Dynamic SQL SiteMap Provider ... Localized Dynamic SQL SiteMap Provider powered with SqlCacheDependencyGo
Multi Profile with Membership and Profile API ... Implement and maintain multiple profile of a user using Membership and Profile APIGo
Generic Object Tree For Synapse Controlled Relations ... A concept of building a tree and allowing each branch of the tree to associate to any object.Go
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
ASP.NET Ajax Chat Application ... A chat room page using ajax and Linq to xmlGo
Ease your MVP ... This article describes how MVP integration in ASP.NET 2.0 can become easier with .NET generics and Hierarchy in PresentersGo
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
DotNetSlackers.com Links
ASP.NET MVC in CodePlex and Extensible Unit Testing ... Phil has some good thoughts on ASP.NET MVC preview 2 and beyond.  A couple of key things that I think are very cool with this project.   CodePlex builds -- The team is very exited to be  able to ship out the source code and unit tests for ASP.NET MVC through it's release cycle on CodePlex.    We will still do regular CTPs and Betas and RTMs, outside of CodePlex in the normal way.  But CodePlex allows more frequent releases if you want to watch the evolution... 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
iPhone 2.0 update to be released in June 2008 ... Apple announced the release of the iPhone software update 2.0 beta and the final release will be deployed around June. Historical times we are living, when Microsoft is working with Apple to get exchange connection, as well as the Cisco VPN client will be installed on the release. Will be Silverlight support for the iPhone? I can only hope so! Cheers Al Please check my other ASP.NET blog... 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
How fast is your ASP.NET DataGrid? ... I'm pleased to announce that the upcoming version ( Q1 2008 ) of RadGrid for ASP.NET AJAX (3.5 build ) will be extremely fast. Now the grid can handle for you millions of records in few milliseconds . Small running example can be found here . 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
Client Application Services - Articles ... Two new articles have been published for on the www.aspalliance.com. The two new articles are part of the 3-article series on Client Application Services. CLAS allow you to access the ASP.NET 2.0 Application Services from within Windows Client applications. Here is a link to both articles, and make sure to read them before article 3 comes in ;) Client Application Services - Part 1Client Application Services - Part 2 Hope you enjoy reading them! Regards ... 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
Review: ASP.NET Data Presentation Controls Essentials ... In this article, Brendan reviews the book Joydip Kanjilal has written with Packt Publishing. The book covers the Data Presentation Controls available in ASP.NET 2.0 as well as a small bit of mention of the new technology available in the 3.5 version. 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
My Mix Presentation on httpModules ... I did a sort of impromptu presentation on httpModules Thursday at Mix 08. The Open Spaces Crew has posted the httpModule presentation on the Mix site for you to view. I run through three of the modules I wrote about in my upcoming WROX BLOX on httpModules....(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
Watch out for Collection property Setters in ASP.NET Controls ... If you've ever run into the dreaded ASP.NET control error - Error Creating Control: control could not be set on <some Collection Property> in the ASP.NET designer that looks like this: you've probably run your head against the wall after a while of frustration. Oddly, even though the designer bombs, the page will run just fine if you execute it at runtime. The control above actually has a control designer to handle rendering so unlike the common problem of the rendering code causing an error... 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
ASP.NET.com Links
Introduction: ASP.NET 2.0 Folders ... ASP.NET 2.0 allows us to create some folders via right clicking project. But lots of people are don't know why we need to create that folder. Here are the description for the each folder in asp.net 2.0 that we have to create for diffrent purpose. App_Code App_code folder contains the code files for the classes, structures, enums etc. It also contains .wsdl files for web services. Typed data set files are also reside in this folder.Any of this item automatically available to whole application. App_Themes ASP.NET supports themes to enable visual styles on web page. This folder contains the themes skin and .css(Cascading Style Sheet) files. App_Data App_Data contains the database for a application and other data files like .mdf, xml, text and .csv files used in web application.This folder are used to stored data related entities. App_GlobalResources ASP.NET allows us to create resource files. There are two types of resources files one is global and another one is local. The global resources files are available to whole application. While local resources files are available to specific page only. This folder store global resource files with .resx extensions. App_LocalResources This folder stored local resources files. App_WebReferences This folder store web reference of web service from a asp.net 2.0 application. You can web reference via right click project in solutions explorer and then click add web reference. App_Browsers The App_Browsers folder holds browser files, which are XML files used to describe characteristics and capabilities of these browsers Bin This folder contains assembly files for controls and web pages.Assembly files are basically a .dll files. Any .dll files found this folder automatically links to whole application. This folder structure are basically supported by asp.net 2.0. You can also create your own folder structure by right click project name in solution explorer. and add new folderGo
S3 Browser for Windows Live Writer ... Tim Heuer announced today the release of "S3 Browser", a plug-in for Windows Live Writer that enables easy inserting of links or images from your S3 storage. See his announcement on his blog , and on the Code Trip's blog . Like Tim, I've been using S3 to host my images for the blog, and I wholeheartedly agree with him - the workflow for writing a post sucked big time . This plug-in had been on my //TODO list for a long while now. Somehow I mentioned that fact to Tim on Twitter and he sent me a link to a screenshot of his initial version. My response? Sign me up! He uploaded his source to CodePlex and I immediately started implementing the remaining features. The result is the 0.9 beta release of the S3 Browser Windows Live Writer plug-in. Give it a download and try it out! Please submit any feature ideas or bugs on the codeplex site, or you can leave a comment here as well.Go
SPWebConfigModification Best Practices and Guidelines ... The SPWebConfigModification class allows developers to write code that will make modifications to the web.config files of SharePoint sites. This is quite often necessary when you want to deply SharePoint customizations together with configuration settings. Using the SPWebModification class is not without any danger! :-) You can mess up your web.config files especially if you don't think about how you want to be able to undo your changes. Mark Wagner wrote an excellent article about the best practices related to the SPWebConfigModification class ; required reading for every SharePoint developer. Mark explains some very important things you should know to get started: To save the modifications, you must use of the following code:myWebApp.Farm.Services.GetValue<SPWebService>().ApplyWebConfigModifications(); myWebApp.Update(); Only call this code once in your feature handler, otherwise you get the error "A web configuration modification operation is already running. " Great info Mark, and please do create an complete example of the best practices, packaged in a feature!Go
SAFECode and Security Best Practices ... hi people, Do you remember the last time you have developed an application with absolutelly no worries about security ? when you could trust the user input? when you were not worried about sql injection attacks? string attacks? dropdown list modifications? You are right, (if you ever did this) probably it must have been a long long time ago. Security nowadays IS PART of the regular software development application. It is no more something to worry about only when the application is deployed or attacked. Security is a development-phase concern. Security skills are part of the normal software developer skills and if you are a developer and it is not yours, start learning about security right now. The thing is: How and where to learn about security? What are the best practices for security in software development? What if I am a Java programmer, Microsoft recommendations apply to me? I use SAP, why should I worry about security? My friends, I present to you (or at least to those who haven't heard of it yet) SAFECode . SAFECode or Software Assurance Forum for Excellence in Code is a consortium formed by many big names in the world, including those I told you before. People like Symantec, SAP, EMC and of course Microsoft are part of it. Together those companies created internal teams and they interact with eachother using SAFECode as an organisational interface and they as a whole share and develop best practices to be recommended to write safer and better products. Last week SAFECode released their first whitepaper with the best practices for a better and more secure software. That's a very interesting document. Why? because if you take your time to read it, you will notice how similar are the methodologies of those companies. Hopefully this initiative will grow better and stronger. Maybe one day we will not talk about Microsoft Recommended Best Practices but we will start referring to an Universal Recomended Best Practice ? Only time will tell. (and the market forces, of course) If you are interested take a look at the document here and let us know your ideas ok? See you later.Go
AjaxControlToolkit AutoCompleteExtender Bug in an UpdatePanel ... While working with the AutoCompleteExtender in the AjaxControlToolkit I ran across a bug where if the control happens to reside in an UpdatePanel, the AutoComplete trigger wouldn't get called after a PostBack is triggered in the UpdatePanel. I found the following solution in the www.asp.net forums. All credit goes to psyafter who came up with the solution, I am just re-posting it here to share it with anyone else who runs into this bug. Open the source code of the AjaxControlToolkit in Visual Studio Open the AutoComplete\AutoCompleteBehavior.js file Find the following function:dispose: function () { Add this text:if ( this ._popupBehavior) { this ._popupBehavior.dispose(); this ._popupBehavior = null ;} Right before this line in the file:AjaxControlToolkit.AutoCompleteBehavior.callBaseMethod(this , 'dispose' ); Recompile and replace your toolkit dll Aaronhttp://www.churchofficeonline.comGo
Is Developing Just About Writing Code? ... A couple of colleagues and I went to dinner a few weeks ago. As it does so often, we chatted about work stuff. It drifted to various topics, some more, some less on the personal side of life. One of the things I mentioned (or complained) was my unhappiness with my working knowledge of .net development work. Which is to say I went on about stuff I couldn't figure out due to a lot of stuff. Since my day job isn't really about writing code I have only my free time to learn .net. And being mostly self taught there is a big barrier standing between the idea and the text I need to look for - namely names of things. But another approach was mentioned. Development isn't about code. It is about the process. Working on an application is about a great many more steps than sitting down, firing up Visual Studio (or insert editor of your choice) writing a control to do X and a database (insert your data store here) to hold your information. Development starts with an idea, a need, a thing to get done. It starts with a piece of paper to jolt down the purposes, ideas and improvements of existing applications out there. If you ever looked into starting a company it is very much like that. You start with two business plans - a long one and a short one. An application should start like that. Writing down a short business plan, a summary you can show to people and make them understand why you need to write it, why it is an improvement on an existing version of the same thing (and odds are it already exists). It is your pitch to yourself and anyone interested. I like to grab non IT friends and talk to them because I have to explain things to them to make them understand, and they pose simple questions users might ask - it is like getting user feedback before you have anything to hand out to users . The long business plan of an application is the long term projection. It needs to be harsh and realistic, slacking off time included. Writing down the phases and time frames. Expected growth and goals. Will it be released to the general public, will it be open-source, which licensing option will you use, how will you (will you) generate any income? Doing pre development planning offers a great deal of benefits, or I'd like to think. It allows you to set realistic goals for yourself. It should provide you with time frame to keep to. Looking into tools to use sets your framework and can help build new skills. Most of all it will keep you in focus. And development, be it for fun or profit, needs its focus.Go
Videos and Interviews from MIX08 ... Well, I've had the urge to find all the videos I could and watch them to find out all the goodies I missed while not at MIX08. If you missed any of the main sessions, you can find out more about them here . Note that there are 88 sessions recorded here, so it's a lot of good viewing material. Best of all are Scott Hanselman's MVC Videos can be seen here . He also covers the MVC Mock Helpers which better allow for unit tests using various Mock frameworks including Rhino Mocks, TypeMock.NET and Moq. Dave Laribee was great on Twitter to make sure we were all kept up to date with all the good things that were happening. Brendan Tompkins supplied Dave with a video phone so that he could capture impromptu videos and such. But, best of all they were broadcasted live. He was able to talk to guys like Rob Conery , Phil Haack , Steve Harman , Miguel , John Lam , Scott Hanselman and Josh Holmes . Very cool stuff! They were pretty good and entertaining, although the video wasn't always superb and sometimes you needed motion sickness pills. But, the sessions of note are: Phil Haack interview Capturing Hanselminutes Rob Conery and Steve Harman interview Miguel de Icaza interview Pablo Castro interview John Lam interview Microsoft Surface demo Josh Holmes interview More of them can be found here . And it's enough to make Phil think that he has enough of a fidgeting problem... Well, enjoy!Go
Thoughts on Mix, Ballmer, and the iPhone SDK ... I am a software developer and architect (currently using Microsoft technologies) so of course I was interested to watch the sessions from the MIX conference that just happened last week in Las Vegas. Incidentally, I visited the on-demand web site for MIX using my default browser (Safari on Mac) and of course the page wouldn't load. Go figure - a web page written by Microsoft that doesn't work in Safari, a standards-compliant browser. But I digress. Ray Ozzie is just not a good public speaker. He didn't seem excited at all (and he sure didn't get ME excited with his subject matter). His talk sounded like he was reading a newspaper article, not engaging the audience. In addition, his slides had whole movies playing with demos while he was speaking. This is confusing because your mind wants to see what's going on in the movie. So you can hear Ray speaking but your mind isn't listening to him because it's trying to figure out what it is seeing in the movie. FINALLY Scott Guthrie came on. I have always really liked Scott, ever since the first session I saw him give. In my opinion, Scott is simply the best bet Microsoft has and has had for a couple of years now, regardless of product group or division. Unfortunately he wasn't on too long before he introduced the IE8 guy, but I know he'll be back, and I hope he's the one giving the demos later! I like the Developer Tools that the guy demo'd for IE8. Those will be useful. Web Slices is an interesting concept, and obviously born from the Web Clip functionality introduced in Safari about a year ago now. But unfortunately the implementation of Web Slices is very sub-par. At this point (and I could very well be premature and/or incorrect on this point), there appears to be no operating system integration at all, like Apple gave us in Leopard. In other words, if you want to see updated Web Slices, you have to open IE8 and then click on each and every one that you have to view it. I also have to admit that I'm not sure, as a developer, I would want to add extra code to my pages or my site if I want to support Web Slices. The code would be IE8 only, and I think we all know what writing IE-only code has gotten us in the past when we wanted to support more than just IE. One of the first things Scott did with regard to Silverlight was to show a movie montage of some of the live usage of Silverlight on the Internet. I have to say that I only found 2 or 3 of those particular examples compelling. Most of the other ones you'd never know were Silverlight at all. Could have just been embedded videos or animated images. I would be curious to see a REAL demo real of Silverlight in use today. And, note to Microsoft: We get that it can play videos. I thought it was really funny when the Cirque de Soleil employee came on the stage and was holding that big tablet PC with the web cam strapped on to it. So 2001. There were a few demos of Silerlight on mobile devices, and I have to say that after watching this video the other day, I was not excited at all. The Silverlight mobile applications looked jumpy during animations; slow to respond, and honestly, a little outdated already. I don't think this is a limitation of Silverlight. I believe it's a limitation of the hardware capabilities of the devices they showed – some of which are quite new. All in all I'd say that Silverlight is good for the web, but (contrary to what Rocky Lhotka said in his recent blog post) Silverlight is not the future of the web. It will be a part of it, but that will be about it. Only time will tell if I'm right. Next, I watched the keynote where Steve Ballmer was interviewed by Guy Kawasaki. I thought it was great, for the most part. Steve Ballmer used to be my favorite speaker to watch. After I watched Steve talk about something I'd want to go right out and buy it or try it or develop on it or install it. This all changed for me over the past two years when I realized that Steve Ballmer is perhaps one of the worlGo
RockNUG Meeting 3/12/2008 - Refactoring in C# ... The Rockville .NET User Group (RockNUG) will be holding their next meeting on Wednesday, March 12th, 2008 from 6:30PM-9:00PM. This month, they'll be having a pretty interesting topic on refactoring in C# with Jonathan Cogley . I've had my refactoring and agile boots on lately, so I can definitely relate. I don't know what I would do though without my Resharper 4.0 Nightly Builds ... I've had a few issues here and there, but nothing to discourage me from continuing usage. Anyhow, here are the details: Location: Montgomery College, Rockville Humanities Building - Room 103 Refactoring in C# - Bad code to better code presented by Jonathan Cogley What could be more fun on a Wednesday evening than critiquing some bad code and making it better? :) Come along to learn how to clean code like the Thycotic team. What do we look for? How do we take small steps to keep it working? What tips and tricks make it easier? This session will be code, code and more code (and a few unit tests of course!). Jonathan Cogley is the founder and CEO of thycotic - a software development company operating in the Washington DC Metro Area with offices in Vienna, Virginia. Jonathan has worked for many interesting companies over the last decade as a software consultant in both the UK and the USA. His company has released various .NET projects and APIs including an implementation of Remote Scripting for .NET, a database platform independent data access layer for ISVs and various tools for the Test Driven Developer. Test Driven Development (TDD) is the cornerstone of the thycotic approach to software development and the company is committed to innovate TDD on the Microsoft .NET platform with new techniques and tools. Jonathan is also a columnist and editor for the popular ASP.NET Web site, ASPAlliance. He is an active member in the developer community and speaks regularly at various .NET User Groups, conferences and code camps across the US. Jonathan is recognized by Microsoft as an MVP for C# and has also been invited to join the select group of the ASPInsiders who have interactions with the product teams at Microsoft. The schedule for the event is as follows: n00b Session 6:30 - 7:00 ASP.NET GridView Part III Pizza/Announcements 7:00 - 7:30 Featured Presentation 7:30 - 9:00 Refactoring in C# Hope to see a great crowd there! I'm looking forward to it.Go
The design in TDD ... Lately I've been drafting posts on my daily commute and post them up in batches (just in case you were wondering :). I recall an article (not sure where I read it) about Ron Jeffries and his ability as an 'alpha architect'. Such people are rare, the design they have mostly in their mind with TDD providing a way of slightly reshaping the design and proving the model (in a pair session that can mean validating each other’s ideas). Another kind of folks is the folks that have a general system picture but design a piece at a time with model shaping and validation occurring as they go. Both are no less a way of designing and developing a system but while the 'alpha architect' has considered overall, system considerations and won't introduce design faults, the other folks need to go carefully to avoid those faults. The point that TDD is a design process seems to get missed, writing tests before your code is only part of the process and not the sum total. The trouble I have found is that the design process tends to be an organic one, a rhythm that you adopt and you’re not aware of what process you’re following. So in this post I am going to attempt to lay out some of those considerations, not sure I will capture them all and you may have your own, leave us a comment with yours. SOC A car is not made from one part but many, with each part such as the engine or wheels made up from other parts. Does the engine depend on the door handle or the windscreen wiper blades? No. Each part, object or concern is separated from the rest but is associated in such a way that you can still achieve your aim without any dependencies on each concern. Relating that back to code, if a car class had an internal Ferrari engine object could we create a Porsche car from that car class? If the car class held a reference to an engine object that the Ferrari object was sub class off could we instead create a Porsche sub class and our Porsche car have the right engine? The practice of SOC is really a good OO practice in that you ensure your classes are so tightly bound to other concerns that you losing all the polymorphic benefits. TDD helps us here in that we look at all of the concerns of the class and how that class behaves in isolation and with associated concerns integrating with the class. If in writing and then developing the test it fails randomly, your setup and surround is heavy or you are forcing the test into a deep integration test then chances are the class and its concerns are bound up too tight and it's a candidate for further refactoring. Integration and Isolation Take your class in isolation, can you isolate it? If you can what are its dependencies, if you’re testing it what kind of dependencies do you need and how deep are they. The more complex it is to take a class in isolation then your likely looking at a smell and some further refactoring is required. TDD forces you into putting a class into isolation and not being 5 levels deep in a system. You’re focused on that class alone and once taken out of context you can really learn if it will hold up. Jeremy’s most recent post talked about using static and integration styles in your tests , it's a great post and well worth taking your time over. One thing that is worth mentioning about integration is that integration means as light as you can make it. If your using a lot of other actual concrete concerns to achieve isolation then it's a smell, the cohesion between your class and its concerns is too tightly bound. If you can use mocks or doubles in place of the concerns and your class knows no difference, working as it would normally then you’re in a happy place. Sometimes you can't avoid using an actual and sometimes it makes sense but too many and too often would be a smell, finding a balance is half the skill. Things around Consider the concerns around the class, what does the class need as inputs, what does it need for its processing and for its outputs. Those consideratioGo










have suggestions for the site?
snappy@alligatortags.com