# Thursday, May 11, 2006
Ping...

I’m still alive – I’m just swamped! I’m working full time onsite with a huge deadline on Friday and trying to organize a conference (http://dayofdotnet.org) this week. I could drop either of those tasks and still have a busy week. I don’t know where I’d be without the help of John Hopkins and Jason Follas on the conference and with John’s help at the client.

I did squeak out to hear a fantastic talk from Dustin Campbell at Ann Arbor .NET Developers Group on the top 10 developer tools that everyone that uses Visual Studio needs. I even picked up a few last night. ILMerge was new to me. I learned a lot about CodeRush last night as well. I’m an avid fan, but I still learned a ton…

More next week – after things calm down.



Thursday, May 11, 2006 11:54:18 AM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Thursday, May 04, 2006
AACS Grok Talks Last Night

Last night’s Grok talks were a smashing hit! I was so happy with how everything went off. We had:

Jason Follas speaking on T-SQL Enhancements in Sql Server 2005 SQL CLR (Turns out Jason reads my blog and corrected me... :)). Jason is one of the local experts on SQL Server 2005 and ran through a quick preview of what his talk is going to be on at Day of .NET.

John Hopkins speaking on ADO.NET Table Adapters. He showed how much code you could save with careful use of the table adapters. It’s amazing how little control you are giving up for that much power.

Darrell Hawley speaking on role based authentication for web services. It was impressive that he got through that much code in that little time. He showed how to secure the web service with roles so that you could have no access, view access, edit access or add item access. All of this is very close to reality so it was, in addition to being entertaining, was very practical.

Bill Wagner talking about C# 3.0. As always, I learned something new when listening to Bill talk. He talked about the var keyword in C# 3.0 and explained how it’s actually a strongly type keyword, it’s just that the type is not known until compile time.

Aydin Akcasu talking about Kids Programming Language. This was a preview to his talk at Day of .NET. It was an exciting talk that got me excited about the possibilities that I could have with my son programming.

Martin Shoemaker talking about building speech and ink applications for the tablet. This was an interesting talk because Martin didn’t talk the whole time – his tablet did all the talking. While he didn’t show as much code as he might have in a traditional talk, he showed what was really possible.

Josh Holmes (me) talking about the ASP.NET 2.0 – Health Monitoring. I also MC’d the whole deal. That was fun! It was also a treat – I came in on time because I had a lot of people timing me that were under strict orders to pull the hook if I went over.

And finally

Carl Franklin of .NET Rocks talking about remote podcasting. This was fun because he was remote. He was tied into the PA system through a phone connection and VNC’d into Bill Wagner’s laptop so that he could do his presentation. There were a ton of moving parts, but it all went rather smoothly.

I’m hoping that we will repeat the Grok talk idea really soon. It was a ton of fun and the audience seemed to get a lot out of it.


Speaking | User Groups
Thursday, May 04, 2006 7:21:47 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

SharpKeys

I’ve been listening to some of the old (January 2006) HanselMinutes (http://www.hanselminutes.com) and found a fantastic utility called SharpKeys (http://www.randyrants.com). It’s a key editor that will remap any of the keys on your keyboard.

I’ve had one HUGE issue with my new tablet (new as in December) which is a Fujitsu Lifebook T4020. That issue was that the End and Home keys are function keys! In other words, I have to hold down the function key and then press PageDown to get End. I use End all the time and in combination with other keys whereas I rarely use PageDown and only use it by itself so it’s not a big deal to hit a function key for that. It took just a quick moment to reverse those so that End is where PageDown used to be and PageDown is the function key.


Hardware | Utilities
Thursday, May 04, 2006 2:39:19 PM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Friday, April 14, 2006
Security Focused Article in Visual Studio Magazine

I'm an officially published author now. It's very cool to see my name and BIO on article. I think that this will be the first of many.

This was a joint article between me and Gabriel Torok of PreEmptive Solutions.

It covers 8 specific ways that you can Reduce Your Code Vulnerability to various attacks.


Articles
Friday, April 14, 2006 12:55:05 AM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# Thursday, April 13, 2006
Obfuscation, IT Governance and Enterprise Risk Management

There’s a free webcast coming up that you should know about titled “Obfuscation, IT Governance and Enterprise Risk Management”. It’s being hosted by PreEmptive Solutions – the creators of Dotfuscator. They know just a bit about the topic so it should be worth hearing.

 

Event: Obfuscation, IT Governance and Enterprise Risk Management  

Date and Time: Monday, April 24, 2006 1:00 pm Eastern time zone

Duration: 30 minutes

Description: Attendees will leave with a clear understanding of the role of obfuscation as an effective control for application security, access control, IP protection in the context of broader IT governance and enterprise risk management frameworks.


Utilities
Thursday, April 13, 2006 12:00:11 AM (GMT Standard Time, UTC+00:00)  #  Comments [0] 

# 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]