Wednesday, January 23, 2008

We had a great Code Camp on Jan 12.  I've got a longer blog post planned to summarize the event.  I'm gonna work on that next.  But I promised Marc that I'd post his slides from his presentation "Building ASP.NET Dynamic Data Web Sites using LINQ for SQL".  And to be fair, he sent me this stuff on Jan 14 and I'm finally posting it today.  Sorry to those of you who were waiting for it.  I sat in on this presentation and it was a lot of fun and full of content.  Thanks Marc!

 

He was kind enough to create two versions of the slides:

Slide Deck for Power Point 2003 (.ppt)

Slide Deck for Power Point 2007 (.pptx)

Wednesday, January 23, 2008 9:42:21 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, January 07, 2008

From now on I will take my own advice.  I spent a good part Friday afternoon and Monday morning trying to figure out what was wrong with my code and I don't want to do that again!  The problem I was having was that I had an ASP.Net control that would not postback, no matter what I tried.

I have a page with several user controls on it.  One of these user controls includes an asp:Textbox that is hooked to some JavaScript so that when the use clicks "enter" in that control a postback will occur.  The postback is accomplished by some JavaScript that calls the click event on a button that is hidden (style="display:none").  But the postback wouldn't work.  I put a few alerts in the JavaScript and I knew it was getting called, but the postback still never occurred.  The problem was not so easy to see.  That's because I had a second user control on the page.  That second user control has an asp:RequiredFieldValidator in it.  To complicate things, that validation control was tucked in a modal popup (using the Ajax Control Toolkit's Modal Popup Extender).  But, I forgot to include the ValidationGroup property on the validator.  So any control on the page would cause validation to occur which will block the postback if validation fails.  But since the validator was in the popup (which of course, was not currently popped up), I didn't see the error message that was trying to tell me there was a problem.

The problem was easily fixed (if not easily found) by simply adding the ValidationGroup property to the validator and of course, matching it up on the button that is supposed to call that validation group.  Since the hidden button on my other control was not included in the same validation group, it was free to postback any time it wants.

Monday, January 07, 2008 10:59:52 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, January 04, 2008

A cool thing happened at work today.  Dean was stuck trying to figure out how to get the EditItem from an asp:Listview.  So he hits his favorite search engine to look for an answer.  Believe it or not, the first item in the search result was a link to a post on my blog!  Dean got his answer.  But I thought that was the coolest thing that he his answer could have come from anywhere in the world but he searched and got a post from the guy sitting right across from him!

 | 
Friday, January 04, 2008 6:20:01 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Wednesday, December 19, 2007

Updated on12/19.  Infragistics has joined us as a Gold Partner

 

Wow, Code Camp 2008.1 is coming up fast.  It seems like we move from planning one Code Camp right into planning the next one.  We are busy lining up sponsors and speakers and I can report that both efforts are going very well.

First, a sponsors update.  Scroll down if you want to see the sessions that are planned.

We now have several levels of sponsorship.  Companies can contribute money to Philly.Net so we can pay for the expenses of running a Code Camp.  In addition, companies provide prizes and swag, and everyone likes that! Of course, this list is changing all the time.   All of these companies have been very generous in their support of Philly.Net.  If you get some time, check out their web sites/products. 

Announcement: The official email hasn't gone out yet but I'll let the cat out of the bag... Code Camp registration is now open on the Philly.Net site!

Platinum Partners:

DeVry Microsoft
Thanks to DeVry in Fort Washington, PA.  They'll be hosting our Code Camp. We can always count on Microsoft's support throughout the year.

Gold Partners:

ComponentOne Infragistics_1 neudesic rda Redgate

Silver Partners:

Spherion SteelBlue

Other Partners:

Solid Quality Mentors

Other companies have pitched in to provide prizes for Code Camp.  Here's a list of who's signed up to help, so far:

ComponentArt

Dundas

AddisonWesley/Sams

SQL Server Magazine

Wrox

Presentations:

We all come to Code Camp for the presentations.  Here is a list of some of the presentations that you'll get at Code Camp. This list is NOT complete and is subject to change, of course.   Keep an eye on the Code Camp site for the latest information.

    Alt.NET
    Brian Donahue - Panel Discussion
    David Laribee - Fundamental Domain-Driven Design
    Jeremy Jarrell - Decoupling Your Design - Dependency Injection with Windsor
    Jeff Deville - ASP.NET MVC - A New Way To Build Web Apps 
    Steve Eichert - Behavior Driven Development In Action:  The Evolution of TDD
    Don Demsak - Design Patterns

    Architecture
    Mitch Ruebush -
    Harish Bidad - BizTalk R2 BAM
    Chip Lemmon - Entry Level Event Models
    Tim Dodd - IIS 7
    Sam Gentile - ESB/SOA

    Business Intelligence
    Dan Clark - Integrating SQL Server Reporting Service Reports in .NET Applications
    Dan Hartshorn - Performance Point
    Mark Scott -
    Andy Leonard -

    User Experience
    Andy Schwam - ASP.NET Custom Controls
    Jonathan Newell - Databinding ASP.NET
    Bill Wolff - Silverlight 2.0 with Expression and Visual Studio 2008
    John Juback - Real World Experiences with Silverlight
    Eric Pascarello - Investigating JavaScript and Ajax Security
    Susan Lennon - Using SharePoint Designer to build a dashboard-type view of lists

    Frameworks
    Marc Ziss -
    Jim Bonnie - SubSonic as a Data Access layer for DotNetNuke
    Rachel Appel - Exception Handling & Management Strategies
    Kevin Goff - Crash Course on LINQ and VS2008 Language Enhancements

    Collaboration
    David Mann - Delivering Modular SharePoint Workflow Functionality via Components
    Bob Fox - SharePoint Disaster Recovery, Backup and more…
    Tony Testa - AJAX in SharePoint
    Michael Lotter - InfoPath 2007 with Visual Studio 2008
    Russ Basuira - Programming Composite Applications that use the SharePoint Business Data Catalog
    Gary Blatt - Using OpenXML to Access Excel and other Office 2007 Files
    Database
    Sharon Dooley -
    Ed Pochinski -
    Joshua Lynn - SQL Server 2008 New feature: Change Data Capture
    Reed Sutton -
    Hilary Cotter -
    Chuck Urwiler -
    Toolbox
    Mark Magliocco - FaceBook Developer Toolkit in .NET
    Judy Calla - Visual Studio 2005
    Travis LaBorde -
    Rob Keiser - Powershell 2.0
    Todd Snyder - Using Refactoring to hunt down code smells
    Steve Andrews - Visual Studio 2008 Tools and Add-Ins

Wednesday, December 19, 2007 8:04:51 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, December 17, 2007

The new ListView control in ASP.Net is pretty cool.  It is really flexible and often makes life pretty easy for me.  But there is one thing that doesn't make sense to me.

It isn't simple to figure out which item is the "Edit Item" during databinding.  It isn't impossible, but it seems more complicated then I'd expect.  During ItemDataBound() you can test the item's type:

        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            //do something
        }

Remember that with a ListView, there are no rows, so we refer to Items. 

Unfortunately, the options for ListViewItemType only include DataItem, InsertItem, and EmptyItem.  All of those are helpful, but what about EditItem? So the next logical thing to do is use the ListView's EditIndex.  All I'd have to do is compare the current index to the EditIndex and I'll know if I'm on the edit item.  ListViewItemEventArgs has an Item property but there doesn't seem to be an Index or CurrentIndex property.  So the comparison won't be so easy.  We'll here it is, the way to figure it out:

    protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        if (e.Item.ItemType == ListViewItemType.DataItem)
        {
            ListViewDataItem dataItem = (ListViewDataItem)e.Item;

            if (dataItem.DisplayIndex == ListView1.EditIndex)
            {
                //do something
            }
        }
    }

I hope this information is helpful.

Monday, December 17, 2007 10:33:03 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Sunday, December 16, 2007

Wow, Code Camp 2008.1 is coming up fast.  It seems like we move from planning one Code Camp right into planning the next one.  We are busy lining up sponsors and speakers and I can report that both efforts are going very well.

First, a sponsors update.  Scroll down if you want to see the sessions that are planned.

We now have several levels of sponsorship.  Companies can contribute money to Philly.Net so we can pay for the expenses of running a Code Camp.  In addition, companies provide prizes and swag, and everyone likes that! Of course, this list is changing all the time.   All of these companies have been very generous in their support of Philly.Net.  If you get some time, check out their web sites/products. 

Announcement: The official email hasn't gone out yet but I'll let the cat out of the bag... Code Camp registration is now open on the Philly.Net site!

Platinum Partners:

DeVry Microsoft
Thanks to DeVry in Fort Washington, PA.  They'll be hosting our Code Camp. We can always count on Microsoft's support throughout the year.

Gold Partners:

ComponentOne neudesic rda Redgate

Silver Partners:

Spherion SteelBlue

Other Partners:

Solid Quality Mentors

Other companies have pitched in to provide prizes for Code Camp.  Here's a list of who's signed up to help, so far:

ComponentArt

Dundas

AddisonWesley/Sams

SQL Server Magazine

Wrox

Presentations:

We all come to Code Camp for the presentations.  Here is a list of some of the presentations that you'll get at Code Camp. This list is NOT complete and is subject to change, of course.   Keep an eye on the Code Camp site for the latest information.

    Alt.NET
    Brian Donahue - Panel Discussion
    David Laribee - Fundamental Domain-Driven Design
    Jeremy Jarrell - Decoupling Your Design - Dependency Injection with Windsor
    Jeff Deville - ASP.NET MVC - A New Way To Build Web Apps 
    Steve Eichert - Behavior Driven Development In Action:  The Evolution of TDD
    Don Demsak - Design Patterns

    Architecture
    Mitch Ruebush -
    Harish Bidad - BizTalk R2 BAM
    Chip Lemmon - Entry Level Event Models
    Tim Dodd - IIS 7
    Sam Gentile - ESB/SOA

    Business Intelligence
    Dan Clark - Integrating SQL Server Reporting Service Reports in .NET Applications
    Dan Hartshorn - Performance Point
    Mark Scott -
    Andy Leonard -

    User Experience
    Andy Schwam - ASP.NET Custom Controls
    Jonathan Newell - Databinding ASP.NET
    Bill Wolff - Silverlight 2.0 with Expression and Visual Studio 2008
    John Juback - Real World Experiences with Silverlight
    Eric Pascarello - Investigating JavaScript and Ajax Security
    Susan Lennon - Using SharePoint Designer to build a dashboard-type view of lists

    Frameworks
    Marc Ziss -
    Jim Bonnie - SubSonic as a Data Access layer for DotNetNuke
    Rachel Appel - Exception Handling & Management Strategies
    Kevin Goff - Crash Course on LINQ and VS2008 Language Enhancements

    Collaboration
    David Mann - Delivering Modular SharePoint Workflow Functionality via Components
    Bob Fox - SharePoint Disaster Recovery, Backup and more…
    Tony Testa - AJAX in SharePoint
    Michael Lotter - InfoPath 2007 with Visual Studio 2008
    Russ Basuira - Programming Composite Applications that use the SharePoint Business Data Catalog
    Gary Blatt - Using OpenXML to Access Excel and other Office 2007 Files
    Database
    Sharon Dooley -
    Ed Pochinski -
    Joshua Lynn - SQL Server 2008 New feature: Change Data Capture
    Reed Sutton -
    Hilary Cotter -
    Chuck Urwiler -
    Toolbox
    Mark Magliocco - FaceBook Developer Toolkit in .NET
    Judy Calla - Visual Studio 2005
    Travis LaBorde -
    Rob Keiser - Powershell 2.0
    Todd Snyder - Using Refactoring to hunt down code smells
    Steve Andrews - Visual Studio 2008 Tools and Add-Ins

Sunday, December 16, 2007 10:26:57 AM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, December 10, 2007

Don't forget that Code Camp is Saturday, January 12 at DeVry University in Fort Washington, PA.  I'm still working on prizes and contributions.  We've got some great companies pitching in to help already:

GOLD Level Contributors:
ComponentOne
Neudesic
RDA
Neudesic
Red Gate

SILVER Level Contributors:
SteelBlue Solutions

Inaddition, other companies have already promised to provide swag/prizes including:

 

We are starting to line up speakers.  I think we already have around 30 presentation set.  If you are interested in Contributing or Speaking, please let us know.

Monday, December 10, 2007 8:16:40 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, December 07, 2007

Yesterday at Orbius we upgraded from Visual Studio 2008 Beta 2 to RTM.  For the most part things went pretty well.  This isn't something we can do without a plan. We've been using VS2008 since May.  Our entire code base would need to migrate smoothly.  By the end of the day we were happily running VS2008 RTM! 

Things went pretty smoothly, but this was an interesting warning from the .Net Framework 3.5 installer.  It was good for a laugh and we were able to move past it.

DotNetInstallWarning

One of the guys  migrated his laptop to RTM and compiled our VS2008 solution.  There weren't too many compiler errors, although we did have some problems with some of the LINQ code our projects.  I didn't get all of the specifics, but I think it had to do with the fact that we use our DataContexts in a very disconnected way.  We get data, pass it around, modify it and eventually update the database using a different DataContext. Anyway, he came up with a work around.   There might have been some other problems but I figure if he didn't mention them, they couldn't have been too bad.  He checked the solution into SVN.

Once running the solution (web application), this was a popular message:

An item placeholder must be specified on ListView 'membersView'. Specify an item placeholder by setting a control's ID property to "itemPlaceholder". The item placeholder control must also specify runat="server".

That is because they changed the ListView (the ListView rocks, by the way) a bit.  It used to be you could put ListView content in any old Server Control.  Now it must be within an asp:PlaceHolder. It's an easy change, although we have lots of ListViews in our Solution.  Luckily, Matt on our team made all those changes. That's about it.  I don't recall too many other issues.

When I upgraded my laptop to RTM it took a while.  We followed ScottGu's advice and completely uninstalled all Beta 2 applications and components first.  I uninstalled VS2008 Beta 2 and then followed the list of programs to uninstall (the list is in the links below).  Out of about 20 items on the list, I found about 7 that I needed to manually remove.  One catch...remember to uninstall accessories first (such as ReSharper and GhostDoc), just in case.  There were a few glitches that I wouldn't expect.  Such as a warning to close an application that was blocking the install - only the blocking application was the installer itself!   Dean got a similar warning while installing the .Net Framework 3.5 on our server and he gave me the image from the top of this post.

Here are some links that may help:

Friday, December 07, 2007 7:48:14 PM (Eastern Standard Time, UTC-05:00)  #    Disclaimer  |  Comments [0]  |  Trackback