News

 

The Philly Dot Net user group pulled off another successful code camp. This time around over 350 people showed up to get their free training on a variety of subjects. I would like to thank everyone involved and all participants for making this such a success! I would also like to thank everyone that attended my session on Developing the Blueprint for Enterprise Architecture. You guys had some good questions!!! I hope you liked the exercises and I hope you gained more insight to the process of designing data architectures.
  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

 

Our www.Phillydotnet.org second installment of the 2008 Code Camp series will be held at the DeVry University campus in Fort Washington, PA on Saturday, May 17 from 8:30-5:00. Detailed directions are on the DeVry web site.

  • Lots of code, just say no to slides!
  • 8+ hours
  • 40+ sessions (8:30, 10:00, 12:30, 2:00, 3:30)
  • 8 tracks + lunchtime entertainment
  • 500 seats with tables (laptops welcome)
  • Free breakfast, lunch, and afternoon snack (expanded menu!)
  • Raffles and prizes at 5:00
  • Easy parking
  • Limited wireless

All of this is made possible by our Gold partners (HostMySite, MicroEndeavors, Perficient, RDA Corporation, RJB Technical Consulting), Silver partners (Neudesic, Telerik, Ted Pattison Group, Culminis) and our Platinum site sponsors (DeVry University, Microsoft).

Here is the tentative agenda, room assignments and times are subject to change:

8:00 Registration, continental breakfast
Alt.NET - 141
8:30 Brian Donahue - Behavior Driven Development
10:00 Steve Eichert - IronRuby
12:30 David Laribee - Strategic Domain-Driven Design
2:00 Sebastian Meine - TDD w/SQL
3:30 Erik Peterson - Model-View-Presenter w/WebForms
Architecture - 104
8:30 Max Zilberman - Using Enterprise Library 3.1 and What is Coming in Ent Lib 4.0
10:00 Ken Lovely - Developing the Blueprint for Enterprise Data Architecture
12:30 Sam Gentile - Advanced WCF: Asynchronous Messaging and Event-Driven Architectures
2:00 Mitch Ruebush - Architect's Toolkit: What an Architect Needs to Know and Do
3:30 Steven Andrews - Automation with MSBuild 3.5 and Team Build 2008
Business Intelligence - 109
8:30 Jim Pletscher - Getting Immediate Value from PerformancePoint Server 2007
10:00 Mark Scott - What's new in Analysis Services for SQL Server 2008
12:30 Joe Toscano - Using the PerformancePoint Server 2007 Planning Components to Build Budget/Forecasting
2:00 Andy Leonard - Change Data Capture, Incremental ETL, and SSIS 2008
3:30 Steve Mann - PerformancePoint Monitoring - A Behind the Scenes Look
MIX - 111
8:30 Jess Chadwick - The ASP.NET MVC Framework
10:00 Dani Diaz - Building Rich Internet Applications Using Microsoft Silverlight
12:30 Todd Snyder - UI Frameworks & Patterns: Applying Patterns to Build Applications
2:00 Bill Wolff - Silverlight Design for Developers
3:30 Milan Negovan - Usability
Framework - 105
8:30 John Baird - Winforms to WPF: Making the Switch
10:00 Kevin Goff - Crash Course on Windows Communication Foundation
12:30 Edwin Ames - Dot Net Basics
2:00 Chuck Urwiler - Using LINQ to SQL
3:30 Rachel Appel - Using ASP.NET Dynamic Data in Web Applications
SharePoint - 113
8:30 David Mann - Making SP Development Quick and Painless using Tools
10:00 Jim Kane - Putting SharePoint to Work - Enabling Communities of Users
12:30 Gary Blatt - Integrating Legacy Apps with SharePoint
2:00 Tony Testa - The SharePoint front-end is for wimps, real men use the SharePoint API's
3:30 Gary Blatt - Using Features to Modify the SharePoint Environment
SQL Database - 108
8:30 Sharon Dooley - New SQL 2008 DBA Toys
10:00 Josh Lynn - T-SQL Development Techniques for Performance
12:30 Mike Welsh - Cursors vs. Set Logic: Alternatives to Cursors
2:00 Dan Hartshorn - What DBAs need to know about BI
3:30 Greg Brozovich - SQL Server Physical Database Design Strategies for Performance
Toolbox - 106
8:30 Al Nyveldt - Learning the ASP.NET provider model with BlogEngine.NET
10:00 Jonathan Newell - Source Code Analysis (SCA)
12:30 Travis Laborde - SRP/DI/IOC: Don't Leave Sub Main Without Them!
2:00 Don Demsak - Introduction to the Web Service Software Factory: Modeling Edition
3:30 Rob Keiser - ADO.NET Data Services
11:30 Social networking in the break room, Primo hoagies, drinks and snacks
5:00 evals, lots of raffle prizes

 

 

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati

 

You have to love the xml type in SQL Server 2005.  Here's a simple way I found to make use of it: You can audit all the object/schema changes to the database with a simple database-level trigger.

First, create a very simple table (inside a schema I name 'Audit'):

CREATE TABLE [Audit].[Objects](

[EventID] [int] IDENTITY(1,1) NOT NULL,
[EventData] [xml] NULL,

PRIMARY KEY CLUSTERED
(
   [EventID] ASC
) WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

Then, the trigger:

CREATE TRIGGER [Trig_AuditObjects]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
INSERT INTO Audit.Objects(EventData)
SELECT EVENTDATA()
GO
ENABLE TRIGGER [Trig_AuditObjects] ON DATABASE

That's it.. now get a nice neat little xml entry in my table every time a DDL database level event happens;

<EVENT_INSTANCE>
    <EventType>ALTER_TABLE</EventType>
    <PostTime>2008-05-01T18:06:01.722</PostTime>
    <SPID>55</SPID>
    <ServerName>TestServ</ServerName>
    <LoginName>domain\username</LoginName>
    <UserName>dbo</UserName>
    <DatabaseName>Test2</DatabaseName>
    <SchemaName>dbo</SchemaName>
    <ObjectName>Table1</ObjectName>
    <ObjectType>TABLE</ObjectType>
    <TSQLCommand>
        <SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON" ANSI_PADDING="ON"      QUOTED_IDENTIFIER="ON" ENCRYPTED="FALSE" />
        <CommandText>ALTER TABLE dbo.Table1
    DROP COLUMN testremove
       </CommandText>
  </TSQLCommand>
</EVENT_INSTANCE>

The EVENTDATA() function is provided by SQL Server inside a DDL trigger and provides all the data you see above as an xml document.

Having this during development is like a poor man's source control for schema changes.  It could come in very handy for forensic purposes when diagnosing post-rollout issues or accidental schema changes. 

I wish I could take credit for developing this cool little find. I found it surfing some time ago. I copied and never got around to testing it. I was pretty happy when I did. Thanks to the unknown coder of this one!

 

  • Share This Post:
  • Share on Twitter
  • Share on Facebook
  • Share on Technorati