# Wednesday, April 05, 2006
Speaking at VSLive Toronto 2006
VSLive Toronto Logo 

ASP.NET 2.0 Security Features
April 26th 10:30 a.m.
ASP.NET 2.0 raises the bar on web application security. From the new ViewState encryption mechanisms, to the new auditing and logging support, to the partially encrypted web.config files and more, there are a lot of new features in ASP.NET 2.0. In this session, we will look at many of the new features and show how you can leverage these to make your applications more secure. 

Managed Code in SQL
April 26th 2 p.m.
SQL Server 2005 will change the way that you architect your databases. Among the many enhancements to SQL Server for the 2005 version, one of the most anticipated and exciting features is the ability to run managed code within the SQL Server process. But how do you as a developer leverage this ability? There are many ways for you to leverage this new functionality from writing your triggers to writing your business logic in C# or VB.NET or even creating UDT (User Defined Types). Some of these features are more useful and practical than others. As the adage says, just because you can doesn’t mean that you should. It applies here because there are times that you should not use .NET to solve a problem that T-SQL solves better and vice-versa. In this session, we discuss how, why and (very importantly) when you would want to write managed code for SQL Server 2005. 

Thousands of Users, Personalized Service – Portals and Web Parts in ASP.NET 2.0
April 27th 11:45 a.m.
If you’ve used http://my.msn.com, you’ve wondered “How’d they do that?” Now you can do that too, through personalization with user controls and custom Web parts. This level of personal service and response has been the realm of a lot of custom code or SharePoint until now. The personalization is managed through a WebPartManager which controls any number of zones on the page. In your controls that reside in these zones, through the proper use of properties and attributes, you can have global settings, role-based settings and user-based settings or some combination of all three. Obviously, this could complicate your testing scenarios greatly so careful design and implementation are a necessity. In this session, we will create several custom Web parts, put them into a portal site and show how easily this site can be customized. In addition, we will look at some of the potential disasters and how you can avoid them.

ASP.NET DataBinding
April 27th  2 p.m.
Data Binding is an extremely useful feature of ASP.NET. While it has been around since the beginning of ASP.NET, it has received a lot of attention in ASP.NET 2.0. The DataGrid, yes – that control that we all know and love, has given way to new controls such as the GridView, DetailsView and FormView. There are many new sources to bind to including XML based data sources and more. Between the new data controls, the new functionality on data bound controls and the new declarative data controls; we can reduce the amount of code in your standard web applications tremendously while improving performance and stability. In this talk, we will investigate the new features of data binding and show how it can impact your development.


Speaking
Wednesday, April 05, 2006 3:53:14 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Monday, March 20, 2006
Scott Hanselman raising money to fight Diabetes.

Diabetes is a topic near and dear to my heart. I have had close family suffer from it and a few pass away because of it. In fact, I’m a high risk, due to family genetics, of developing Adult Onset Diabetes (Type II) as both of my uncles on my mother’s side developed diabetes in their 40s. My grandmother and several of her brothers and sisters are also suffering from it as well.

 

 

All that being said – Scott Hanselman (http://www.hanselman.com/blog/TeamHanselmanAndDiabetesWalk2006.aspx) is walking to raise money for the fight against Diabetes.

 

 

Please visit and see if you can help out this very worth cause that definitely affects someone that you know. 



Monday, March 20, 2006 3:00:46 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Wednesday, March 15, 2006
More adventures with SQL Server Express

This was fun. It’s a completely different database and set of circumstances than last night's fun and frivolity.

I finished an application, zipped up the folders and sent it off to a client. In this application there is a desktop app that talks to a web service that talks to a SQL Server 2005 Express database. Sounds fairly simple, right? Right.

Well, the client unzips it all to a directory, sets up the virtual application for the web service and starts trying to run the desktop portion. It starts up, pulls up all of the lookups that we have in the database and it all looks good. Now, I’m on the phone and elated at how smooth this is going. At this point, the client tries to create a new record which is going well (wow, even a little drop down calendar and oooh look at that, it’s all of the types of records that I could create so I don’t have to type there… wow… and more gushing) until they try to save… At this point, there is a wonderful error that pops up –

“Failed to update database ‘database name.mdf’ because the database is read-only.”

Crud! After getting them to check the file properties and other such things, I called Patrick Steele, who has been working with me on this project, to see what he thought about it. It’s been a long day, especially after last night’s SQL Server Express issues, so I’m not thinking all that clearly. Patrick, after running through some of the same questions that I had so I’m feeling a little better about my thinking, has the thought that it might be a security issue and that the ASPNET user might not have permissions to write to that directory. Sure enough, since the ASPNET user doesn’t have permissions the database loads in read-only mode. Fix that and the database and the app work just fine.


Development | SQL Server
Wednesday, March 15, 2006 2:11:56 AM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Tuesday, March 14, 2006
SQL Server 2005 Express Issues

Yesterday I had to make a quick change to a SQL Server 2005 Express database that I'm using for an internal to SRT Solutions tool. I decided that the easiest way to do it was to leverage the auto-connect feature of SQL Server 2005 Express by just FTPing the mdb down, making my change and ftping it back up. This has worked a number of times in the past. Not this time. I got a "login failed for user 'USERNAME'" when I tried to run the application. That was infuriating. I spent the next 4 hours or so working with the SQL Server Management Studio Express (Enterprise Manager lite for Express) assigning, unassigning permissions, users, attaching, detaching, backing up, restoring and everything else that I knew to do. I kept getting "User could not login to user's default database" and general login failures. My personal favorite that I saw yesterday was “Could not attach, DatabaseName is not a primary database file. (Microsoft SQL Server, Error: 5171)”. Now, I'm usually pretty good with googling the answers, but this time I'm really coming up short.

All of this is proving to me that I’m a programmer, not an administrator. I’m digging the new functionality in SQL Server 2005 but I’m not going to be the one to administer the databases that I write code for.

Long story short – I raised the white flag. I IMed Jason Follas and asked him if he knew what was going on. He figured out that it had something to do with the master file that SQL Express was using for the auto-connect. He found this forum topic. Here’s the relevant snippet:

“When you first run SSE this way, it makes a local copy of master etc. in C:\Documents and Settings\<your user account name>\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS.  That's why it's so slow the very first time it loads under a new user profile.  It may even timeout the first time you ever use it under a given profile.

Based on your description, it's very possible something went bad in those files for some reason.  So, I would first make a backup and then delete the SQLExpress directory under C:\Documents and Settings\<your user account name>\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data.  That will get rid of the local copy of master, etc.  Then, reboot. ”

Well – Lance (the author of the post and author of SQL Server 2005 Express Edition Starter Kit) was absolutely right. I killed the master files (after copious backups) and rebooted the machine. It’s working like a champ now. On reboot, it regenerated the master files needed and started right up.

Thanks Lance and Jason


Development | SQL Server
Tuesday, March 14, 2006 2:07:29 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Monday, March 13, 2006
Day of .NET Call for Abstracts
In case you missed it on Day of .NET's web site - the cutoff for the call for papers is this Wed.
Day of .NET
Monday, March 13, 2006 6:31:22 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

New Day of .NET Logo

Day of .NET has a new logo thanks to Kerry Colligan.


Day of .NET
Monday, March 13, 2006 3:28:58 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

Keith Elder, .NET Pimp

Keith Elder used to be one of the biggest PHP advocates around. Now, he runs a site called http://www.dotnetpimps.net where he is the foremost .NET Pimp. He pointed out on his blog that he’s put up and article on why he made the conversion. More at http://dotnetpimps.net/blogs/theelder/about.aspx.


Articles | Development
Monday, March 13, 2006 3:11:11 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Friday, March 10, 2006
TechEd

Check out TechEdBloggers.net



Friday, March 10, 2006 2:48:21 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Wednesday, March 08, 2006
Quality Code at AADND tonight

Patrick Steele is doing the tutorial session on NUnit and how it works.

Dave Donaldson doing the main session and is talking about writing quality software with VSTS.


User Groups
Wednesday, March 08, 2006 5:18:32 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Monday, March 06, 2006
User Group Structure and Positions

When I was at the Rockford, IL .NET Users Group we spent a lot of time afterwards talking about the formation of a user group and best practices. We talked about the idea that they should structure the group so that one person is not having to do all of the work. It’s not sustainable to have one person running the whole show. I just got an email from Chris Hoffman asking me to repeat some of that information. 

 

The basic structure that we are using for three different groups (Great Lakes Area .NET Users Group, Ann Arbor .NET Developers Group and Ann Arbor Computer Society) is as follows:

 

4-5 elected officials – elections once a year.

President

This is the coordinator of all of the different people. Their two basic tasks are to makes sure that everyone else gets their work done and to run the meetings.

 

Vice-President

The basic task of the VP is to take over when the President is not able to make it. We also use the VPs as an extra body on any of the tasks that need to be done such as helping to coordinate marketing, pizza, venue and so on.

 

Treasurer

The Treasurer is the one that maintains the bank account.

User groups have expenses. Those can come in the form of paying for venue, pizza, web hosting, swag to give away and lots more. You can get money for these expenses through paid membership, sponsors, donations or some combination of the three. At all three of the groups that I’m involved in, there is a voluntary $20.00 membership. On top of that, they all have free venue so we are able to cover the expenses with that membership. Two of the groups also accept sponsorships so they can make money that way as well. The treasurer takes the money in and writes the checks so make sure this is someone that you trust. Not that the user group will ever make enough money that it’s worth embezzling but still.

 

Secretary

This secretary’s job is to record minutes at any of the board meetings and such. They are also responsible for running the elections. They should get familiar with Roberts Rules of Order before running the elections. That not required but it’s definitely good because it gives the whole process order and a sense of officialness.

 

At AACS (Ann Arbor Computer Society) we also have a Quartermaster who is responsible for physical things like getting the projector ready and the like. It’s their responsibility to make sure that the room is ready for everyone.

 


Then there are the appointed chair positions. The president has the power to create and appoint chair positions on an as needed basis. The reason that these are by appointment rather than by election is that it makes it easy for administration after administration to reuse the same chairs so there is some continuity between the years. The two chair positions that all of the groups have are:

 

Program Chair

This is the hardest job of the whole group in my opinion. It’s this chair’s job to ensure that there are speakers for every meeting. This person coordinates with INETA if it’s a .NET Users group, scan search engines for local speakers, contacts friends and family and begs and pleads for speakers. It’s a good idea to have a well connected person in this position when the group is starting up because it will make the job easier. As time goes on, the group will gain a reputation and it will be a touch easier because you’ll have some number of speakers asking to come speak + the INETA gigs so you really only have to find 4-5 presenters a year.

 

Web Master Chair

This is the person responsible for the web site. Plan on using Community Server, Dotnetnuke or some other portal style framework because it will make life easier.

 

 

Other chairs that have been created by various groups

 

Publicity Chair

Responsible for mailing out the meeting announcements, getting the group into MSDN flash and other community calendars and so on. Publicity is essential to growing the group. First you have to get the word out to get people interested in it. Second, until you get burned into people’s brain, people will intend on coming but forget about it unless there’s a reminder sent out.

 

Academic Liaison Chair

We have a lot of universities here so it made sense.

 

I hope that this helps. Please let me know if I missed something or if you have anything to add.


User Groups
Monday, March 06, 2006 3:12:17 PM (GMT Standard Time, UTC+00:00)  #  Comments [1]