All posts by joshholmes

Connecting VS.NET to Windows CE

My current contract is a Compact Framework application for a LXE device running Windows CE 4.2. I was having some issues connecting to it from VS.NET and so I asked my good friend Google what he knew about it with this query – http://www.google.com/search?hl=en&q=VS.NET+Compact+Framework+Device+Connection+Issue. Wouldn’t you know that it pops up with my good friend Doug Reilly when he posted about VS.NET Compact Framework Deployment Issues. It turns out that I didn’t have the exact same issue as Doug, but it did fix me because in the download that me pointed me to (Windows CE Utilities for Visual Studio .NET 2003 Add-on Pack 1.1). In there they mentioned that you have to configure VS.NET for the processor type that you are using with Windows CE with ActiveSync.

That’s a real pain, but it fixed me…

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.

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.

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.

Jennifer Marsman

I wanted to publically apologize to Jennifer Marsman for not mentioning her in the announcement to my new job. She is the Depth Developer Evangelist for the Heartland District. She deals with a lot of bigger accounts in the Heartland District and is a ton smarter than me, Drew Robbins and a lot of us other Breadth Evangelists…

For proof that she’s smarter – check out her patent:

http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220060074902%22.PGNR.&OS=DN/20060074902&RS=DN/20060074902

Snippet Compiler

I’ve found this little tool invaluable. I use it to test out RegEx expressions, String Formatting and tons of other useful little bits of code.

I used to keep a dummy project around for this purpose, but it’s a pain to load VS.NET every time that you want to test a quick string formatting and it’s too painful to test to that location in your real application just to see if it worked and see what it does.

I hope that you enjoy it as much as I do.

Deployment issues with the Compact Framework v2.0… (Sorta)

I just tried to deploy an application to a customer’s PPC device and was very frustrated because the app looked like it installed and even put a shortcut in the “Program Files”. However, when I clicked on it, nothing happened. No error message, nothing. Just silence. Wow, that’s informative. The good news is that I called John Hopkins, one of my sub-contractors, and he asked something about the framework version and it hit us both – v2.0 of the Compact Framework was not on the device. Install it and it works great now… 🙂

The thing that made this blogworthy was the lack of error messages. That was the astounding thing. I’d expect some error message on install or something that would prompt me that I needed to install something else. Oh well. I guess that we can’t have everything. It’s a fabulous environment to develop in and is light years ahead of previous development environments so I’m grateful for that but it just points out this type of little inconstancy that much more.

New Career

After several good years working with SRT Solutions and the good people there (Bill Wagner and Dianne Marsh as business partners and John Hopkins, Patrick Steele, Darrell Hawley, Alex Gheith and Martin Shoemaker as sub-contractors) I’ve gotten an opportunity that I can’t pass up.

 

I am joining Microsoft as an Architect Evangelist.

 

I am not going to be moving from my happy home in Manchester, MI. My office will be in Southfield, MI and I will be covering the Heartland District (Michigan, Ohio, Kentucky and Tennessee). While Darryl Hogan and Jon Box are Depth Architect Evangelists, I’ll be a Breadth Architect Evangelist. What that means is that they will be spending a lot of time with a few clients while my focus is much broader and community based. As the title suggests, my job will be to meet with and evangelize to architects throughout the district. A large part of my job will be to cultivate the architectural community the way that Drew Robbins (Developer Evangelist for the Heartland District) does for developers.

 

I’m really looking forward to working with many of you through my work at Microsoft.