Thursday, December 27, 2007
First off, as Microsoft is fond of doing, there are at least five different versions of Sharepoint. This chart, while far from concise, communicates the functionality in the different offerings. I found it helpful for my breath of understanding.
Also, I'm investigating books I can read in my free time. Here's what I came up with along with some suggestions from the gurus at my firm (thanks, Leon, Steve):
Microsoft SharePoint 2007 Unleashed
Professional SharePoint 2007 Development
Pro SharePoint 2007 Development Techniques (Pro)
Inside Microsoft Windows SharePoint Services 3.0 (Pro Developer)
Real World SharePoint 2007
Microsoft SharePoint: Building Office 2007 Solutions in C# 2005
Microsoft SharePoint 2007 Technologies: Planning, Design and Implementation
Professional SharePoint 2007 Web Content Management Development
Update (1/14/2008): Good whitepaper from Chappell. It's a bit old but the concepts hold true.
Update (1/15/2008): 100-level but clear and concise roadmap from Microsoft.
Update (1/17/2008): I ended up buying Professional SharePoint 2007 Development...I'll post my thoughts.
Monday, December 24, 2007
Thursday, December 20, 2007
InfoQ is reporting this morning eight vendors have already jumped on board issuing their support in the near future. Beta3 of the framework released two weeks ago so I'm looking for an RTM maybe early Q2...?
Wednesday, December 19, 2007
The free e-book includes content from three recent publications from Microsoft Press:
Introducing Microsoft LINQ by Paolo Pialorsi and Marco Russo (ISBN: 9780735623910)
This practical guide covers Language Integrated Query (LINQ) syntax fundamentals, LINQ to ADO.NET, and LINQ to XML. The e-book includes the entire contents of this printed book!
Introducing Microsoft ASP.NET AJAX by Dino Esposito (ISBN: 9780735624139)
Learn about the February 2007 release of ASP.NET AJAX Extensions 1.0, including an overview and the control toolkit.
Introducing Microsoft Silverlight 1.0 by Laurence Moroney (ISBN: 9780735625396)
Tuesday, December 18, 2007
Thursday, December 13, 2007
Completing the build locally is a good first step but obviously, it doesn't replicate the server CI process identically.
Brian Harry writes of an open source solution for TFS described as "Gated Check-ins". The code is shelved until receiving the necessary sign-offs (manual or automated) and can successfully pass the build sequence. Once successful, the source is unshelved and submitted into the "real" build sequence.
Tuesday, December 11, 2007
I'm sure there are other on/offline blogging applications but I've recently taken up using the Windows Live Writer application. It's a WISIWYG editor that enables you to draft posts, save them locally, and when connected to the Internet, post to your blog. I also like the style-import feature. This allows one to suck in the theme of your blog so even when editing locally, you know what the post will look like when posted. Finally, it supports most platforms. I use it on both TypePad and Blogger (and soon on WordPress).
My team from The Freestyle Entrepreneur constantly complains about the TypePad editor. Fine, we're switching to Live Writer! (I'm migrating off TypePad as soon as I get our WordPress site running anyway. ;-)
Today I'm attending the MSDN Visual Studio 2008 launch event at the AMC Theatres at Easton Town Center in Columbus, OH. William Steele, Microsoft Developer Evangelist is fielding the discussion for the entire day: Visual Studio 2008, Astoria and Silverlight in the morning and IIS7/ASP.Net in the afternoon.
I've never seen William speak but I receive his updates via MSDN emails. He's handling the crowd well and is smooth with the slides and demo. After delivering a bunch of presentations and seeing others present, I just have the greatest respect for folks who can not only pull off a big event like this but do it with comfort and a bit of humor.
- Visual Studio 2008 - what's new
- .Net 3.0/3.5: C# 3.0/VB.Net 9.0, LINQ, anonymous types, etc.
- ADO.Net Entity Framework - abstract/extrapolate physical data model into conceptual model (Beta 3 released 12/5/2007...RTM expected Q2 2008)
- Codename Astoria - expose entities via RESTful web services (Official Name: ASP.Net Data Services)
- ASP.Net 3.5
As I've written before, I'm still in the "live events aren't the best use of time" camp but Microsoft does a great job of extending knowledge to the community in a free, all-encompassing event such as this. Further, when there's so much that's new and different, I find this "breadth blast" format is optimal. When I get free time, I can then drill down on topics I need or want to explore further (ADO.Net Entity Framework!)
Sunday, December 09, 2007
Friday, I braved the early morning tumultuous weather in Columbus to travel to Detroit for a meeting with our Microsoft Heartland District's leaders Jeff Blankenburg (Developer Evangelist) and Josh Holmes (Architect Evangelist). Thanks again for the invitation, guys.
The topic of the day focused on how Microsoft can best help the developer community. Most of the 20 or so attendees were affiliated with the local user groups in the district. Hey, at least they [Microsoft] are asking. Microsoft may not always get it right but I've been pleased at the creation of roles such as Developer and Architect Evangelist. This alone really bridges the gap between Microsoft and the community. Now Microsoft just needs to increase the budget for these road warriors. [hint, hint]
As a thank you for attending the meeting, Jeff handed out USB Rocket Launchers. Somehow, he scored them from Micro Center for around $10. Nice work, Jeff, they're $35 on Think Geek! Anyway, my 3-year-old couldn't be more enamored with this toy. I hooked it up to the laptop in the kitchen and he has already mastered it! This kid loses interest approximately every 36 seconds but he played with this launcher for over an hour the first night. Good times.
If you're anything like me, your responsibilities pull you in about 50 directions--all at once. This is especially true if you're in a technology career. For me, I maintain a list of goals surrounding my career which average around 10-12: figure out Oslo, get stronger with TFS...particularly Rosario, learn ASP.Net/C# 3.5, present technical topics often, maintain my certifications, keep my team happy and growing, etc.
Typically, it has been my experience during my 12+ year career that conferences--especially non-vendor-managed conferences are not a good use of my time. One ends up burning a day or two with travel ('cause they don't do conferences in the mid-west), the topics and sessions are hit-or-miss, and they're expensive.
CodeMash alleviates all of these shortcomings. Hosted right here in Ohio, the independent founders of CodeMash knocked one out of the park last year in their inaugural offering: logistics, price, content, speakers, SWAG, and organization. Overall, this 2-day regional conference delivered more value than most of the national or coastal events I've attended.
Living in Columbus, the 2.5 hour drive to Sandusky, OH and the Kalahari Water Resort is a piece of cake. Somehow, CodeMash charges under $200 negotiated an under-$100/night rate, and the food is sponsored. There are 42 sessions delivered by the best and brightest (ok, so they didn't pick me...one exception ;-) folks in Michigan/Ohio (predominately) we all know and enjoy: Jim Holmes, Dave Donaldson, Bill Wagner, Josh Holmes, etc. AND, they managed to pull in some heavy weight out-of-state talent such as Bruce Eckel, Neal Ford, and Scott Hanselman. (Last year they paraded in Scott Guthrie...wow. I'll miss his presence at the conference this year. I'm sure there'll be no shortage of greatness this year though...)
So, get yourself registered already! All the cool kids will be there.
My firm, Cardinal Solutions is a Gold Sponsor. If you're nice, I might even share our discount code. ;-)
Monday, December 03, 2007
Check them out. First, they're both free but more importantly, they work great. FDM has built-in restart support and integrates seamlessly with browser downloads. Magic expanded my ISOs quickly and correctly.
Friday, November 30, 2007
Thursday, November 29, 2007
Check out the new scenarios outlined on Jeff Beehler's blog.
Wednesday, November 21, 2007
Monday, November 19, 2007
Meeting Topic: Agile with Team Foundation Server (TFS)
Do you expend lots of time and effort inquiring about the status of your projects and setting up infrastructure rather than delivering value? Is it almost impossible to determine progress and velocity using your current process? Do developers constantly tell you, "Hey, no worries...I'm about 80% done"? Well kiss those days goodbye with the introduction of Microsoft's Team Foundation Server (TFS).
TFS coupled with Visual Studio Team System (VSTS) delivers a complete SDLC management, development, testing, and release solution. Targeted to all the roles involved with the SDLC (developers, testers, PMs, BAs, stakeholders, architects, build masters, etc.), TFS assists you in managing requirements, tracking traceability and defects, improving code quality, and most importantly, facilitating communication amongst all members of the team. TFS supplies process templates but by modifying those processes and extending TFS functionality, you can assuage TFS to accommodate the unique aspects of your process.
TFS is a software product but its features bring about the potential for a strong agile-based solution for your custom software development. In this session, we'll
quickly review the agile principles, cover some of TFS and VSTS's features, map those features to agile principles, and finally, investigate a typical agile software development process as executed leveraging TFS.
About the Speaker: Jeff Hunsaker
Developing and architecting solutions and leading teams for over 12 years, Jeff Hunsaker grew tired of failed projects due to flawed processes. Eager to meet with success, he began to investigate more agile methodologies. While still far from expert rankings, agile principles of software development restored Jeff's faith in effectively and efficiently producing custom business software. He considers learning the agile principles an ongoing endeavor.
Jeff works for Cardinal Solutions as a Managing Consultant and lead for Cardinal's Columbus Microsoft practice. His career thus far includes exposure to industries
including: interactive marketing, e-commerce, military, finance, transportation/logistics, and software products. Jeff likes to relive the glory days remembering leading the
team to build art.com in the late 90's. His biggest responsibility though, is raising his two sons aged 3 and 4 months. In his spare time (with two kids...are
you kidding?), Jeff enjoys reading, online marketing, writing, and taking his sons to the zoo.
The meeting will be held on Wednesday, Nov. 28th in the Smith Private Dining Room from 11:30am to 1pm. Please mark this date on your calendars. You can bring your lunch or purchase lunch in the OCLC cafeteria. To register for this meeting, send email to email@example.com . For directions to OCLC, please visit our website at www.cardinalsolutions.com/XP
Wednesday, November 14, 2007
Tuesday, November 13, 2007
A few days ago, my headlight burned out. Ugh. I replaced them once before (I told you, I've had this car for a long, long time) so I figured, "no problem". I went to Advanced Auto, got the right bulb, and scooted home...again proud of myself for only spending $8.
I get home, pop open the hood, move the radiator overflow tank out of the way and get to work. First off, the cap/gasket-like ring is jammed. After a half hour, I get out the serious tools: screwdriver and hammer. That's right...it's wrecking time! Even after bloodying myself, the gasket won't budge. Ok, time to call in the big guns: Lockjaw Pliers! I locked on to the old socket and just started yanking. Yeehaww!
Finally, after some dreadful sounding cracking and breaking, the gasket moves and I get the old
bulb out. Seemingly, nothing is irreparably broken. I bust out the shiny replacement bulb...ugh...not fitting. (I even
At the end of my rope, the following day, I plead mercy with Advanced Auto, "...anything you can think of?" There's a pause on the other end, "Well, sir, I hate to insult your intelligence but perhaps are you attempting to replace the high beam instead of the low beam?" Crap. I'm an idiot. I sheepishly thank him for the advice--knowing for sure that's the issue.
On the way home, I buy a second low beam (don't want to do this again for a while) and a high beam bulb to replace the one I mistakenly murdered with the Lockjaws. Sure enough, the high beam bulb drops right into the hole. All told, it takes me 5 minutes (tops) to replace three bulbs.
Moral of the story: always make sure you're working with the right beam when replacing headlights!
Props to Advanced Auto...thanks for helping me through my bonehead move. BTW, I really like this store--only auto store I'll visit. They came out to the parking lot to test and replace my wife's car battery for her--no extra charge. Nice.
Thursday, October 04, 2007
Robert Scoble posted an interesting tirade yesterday about Steve Balmer misinterpreting social networking. Scoble cites Balmer's propensity to respond with the Microsoft insular comment about Web 2.0 "We could build [fill in the blank with Web 2.0 technology] in a matter of [short period of time]" as wildly off base. I couldn't agree more.
Scoble's most compelling argument focuses on Ebay. Ebay isn't successful because of its technology. It's successful because it surpassed the tipping point. Everyone uses it for auctions. Why would I want to use another service to buy or sell something when everyone is on Ebay?
Every time I see a job-board listing needing a Ruby/PHP/whatever developer to "build a Facebook-like" application or a "Monster-like job board", I cringe. So some engaging entrepreneur has orchestrated a way to build a better mouse-trap. So what? You're wasting your time and money.
Of course you could build a better [fill in the blank with Web 2.0 technology] given adequate resources--but it doesn't matter because the social network has already formed around Ebay, Facebook, MySpace, LinkedIn, YouTube, etc. Have you looked at Craig's List lately? It's difficult to look at it's so ugly...and yet, it's the destination for local people-centric, one-time commerce.
So, my advice to you aspiring entrepreneurs: innovate horizontally; not vertically. Come up with the next social or community offering--don't simply repeat what's already there but with a better [interface|design|API|etc]. Can you say Ubid.com? 'Nuf said.
Friday, September 21, 2007
Monday, August 13, 2007
Wednesday, August 08, 2007
I then discovered "Virtual CD-ROM Control Panel for Windows XP". Works under Win2K3 as well. The interface is clunky and I needed to start the "IMAPI CD-Burning COM Service" service but it provided exactly what I needed. I'm surprised this isn't just built into the OS...?
Friday, July 06, 2007
Tuesday, July 03, 2007
Monday, June 11, 2007
Thursday, May 24, 2007
Friday, May 18, 2007
To this end, I compiled a list of online resources we'll experiment with over the coming weeks. I thought I'd share my research here:
- Definitive source for learning how to make money blogging: ProBlogger
- Paid reviews of products: Blogsvertise, PayPerPost, ReviewMe
- Affiliate marketing: Amazon, Wiley, Commission Junction, ClickBank, LinkShare, Chitika, etc.
- Gain advertisers on the site: 10 Ways…More Attractive, "Advertise with us Banner", " 7 Levels of Revenue for your Blog" (monthly, recurring advertisers, graphical banner ads, text link ads, etc.), CrispAds, BlogSponsorships, Finding Advertisers for your Blog
- Sponsorship: The Best Way of Making Money on a Blog is Sponsorship
- Payment for Content: Associated Content
- Miscellaneous: Want to make real money on the web?, 5 Ways to Tap Hidden Money Making Opportunities With Your Blog, Have a most popular posts area, Making Money Because of Your Blog - Indirect Methods, Blogging for Dollars, Review of Monetizing Programs, How to Make Money From Your Blog, Make money by blogging, How to Make Money with Your Blog Site
- Merchandising: CafePress
Best of luck with your blog!
Thursday, May 03, 2007
Wednesday, May 02, 2007
Interestingly, Digg management/owners pulled the user post down. However, the community revolted and "forced" the post back online (by repeatedly re-posting the decryption key). This event should prove historic because a social / community uprising "won". The "protesters" may not have been right (as in law-abiding) but I think digital freedom is right (as in morally).
This looks a lot like the Boston Tea Party to me. No one likes DRM: it's intrusive and it interferes with my right to use the content. If I paid for Spiderman II on DVD, then it should damn well play on every single DVD player I own--including my laptop. Therefore, these protesters dumped the tea overboard by providing the entire Internet with the keys to the castle.
With the recent legal setbacks to the RIAA campaign of fear, I think the tide has swung toward free content (as in liberty...not as in beer). I don't believe in stealing and I don't believe in giving content to those who haven't paid for it (should it cost). However, the RIAA is incorrectly pursuing a social and marketing problem with a technology and legal solution.
Here's an idea: stop shoving discs full of 9-I'd-rather-poke-a-pencil-in-my-eye songs coupled with one good song. If I like a song, I'll download it onto an MP3 player...and yes, I'll pay for it. And stop releasing crummy movies you know will flop only to up prices to cover these failures. Make better bets! (C'mon, Snakes on a Plane? Please.)
My advice for the RIAA: (1) create better content. [Most] People will pay for great content. Lexus Nexus...The WSJ... (2) drop all forms of DRM--it just ticks off consumers and presents a barrier to your content and (3) drop all legal pursuit of DRM "violations". Ok, yes, Suzie Smith is violating the law by downloading Hannah Montana without paying for the MP3 but your Draconian Gestapo storming her bedroom with flash-bangs isn't the kind of country I want to live in.
Update (5/3/2007): Looks like there could be some scary legal repercussions for Digg...
Monday, April 23, 2007
Tuesday, April 17, 2007
Introducing WiX (old but Mike Gunderloy is one of the best in installer technologies)
WiX v3 Roadmap Draft
I downloaded WiX v3.0 and got the integration working with VS.Net 2005. Instructions:
Automate Releases With MSBuild And Windows Installer XML
System Folder Properties
Sunday, April 15, 2007
My favorite feature is the "-whatIf" flag found on most (if not all) operations. One can set this flag to understand exactly what would happen if you were to execute the command as it is written. It's almost like having a unit test harness for scripting operations. No more accidental hard drive formatting.
So, for your next scripting task, check out PowerShell instead of writing some hard-to-maintain/author legacy script.
In this regard, do we really have the IRS to thank for the proliferation of cube farms as opposed to the traditional thinking: mega-corporation? (PS. I'm a firm believer cube farms kill productivity and stifle creativity...I'm not a cow. However, they're much better than a big table housing 11 shoulder-to-shoulder consultants.)
Office furniture can be depreciated much faster than leasehold improvements, over 7 years. So for $20 of office furniture you can deduct about $3 a year: better than nothing. Even better, office furniture is a real asset, so you can lease it. Now you're not out any cash, just a convenient monthly payment, which is 100% deductible.
This is why companies build cubicle farms instead of walls, even though the dollar cost is comparable.
I'm going to work on this...
BTW, I took Steven's 3-day intense Team System training. I don't attend training often but his was some of the best I've seen delivered. His blog is a great resource for SCM, Team System, and just good overall development guidance.
Saturday, April 14, 2007
I pulled up the first site (VS Web Express uses Web Sites vs. Web Applications), built it, and browsed to the site. I walked through the straightforward install wizard getting to the last step where the database scripts install. And it just scrolled the progress bar endlessly. I even let it run overnight. Nothing.
Finally, I bypassed the install wizard setting the UseInstallWizard to false within the web.config file.
Other than this hiccup, I'm impressed with the installation mechanism and functionality.
Thursday, April 12, 2007
To start off, how do I obtain and install WCF?
(...assuming you have Visual Studio 2005 w/ SP1 installed)
Visit the Windows Vista Developer Center and download:
.Net Framework 3.0 Redistributable
VS.Net 2005 Extensions for WCF, WPF (Nov. 2006 CTP)
Windows Vista SDK
.Net WCF home page
.Net 3.0 Virtual Labs
MSDN WCF home page
.Net Framwork WCF home page
Vista Series on SearchVB
More to come!
Wednesday, April 11, 2007
Using SQL Server Profiler
Capturing High Duration Queries Using SQL Server Profiler
Sunday, April 08, 2007
After much investigation, I placed us on TypePad using their top-tier offering. It's a very reasonable $15/month given the value of what TypePad (or SixApart...also makers of Moveable Type) provides. To be clear, TFE isn't really outgrowing TypePad, we've outgrown blogging.
This isn't to say, "Pfffft, blogging? We mastered that in 6 months! Whatever!". Quite the contrary. We've refined our approach and identified blogging is just one piece of what we're about. We're taking a more holistic approach with a more newspaper/portal feel with blogging assuming just one piece of our offering.
With this new goal/approach in mind, the technology department (me), set off to find a new, more appropriate platform. After much research, I've decided on DotNetNuke 4.5 (just released) with a SQL Server Express 2005 backend and a stock template presentation. My criteria focused around:
- Clean, easy to navigate, easy to administer/maintain
- Comfortable, mainstream technology with a large developer community
- Readily available, reasonably-priced hosting
- Broad functionality and flexibility
The site CMS Matrix won me over to DotNetNuke. Someone put serious effort into this site. It's excellent! One can choose from dozens of CMS platforms and compare them side-by-side against dozens of features. Seeing a "Yes" next to almost all features for DotNetNuke won me over. Additionally, I've been using the .Net platform since before Beta 2 of version 1.0 (2000).
This isn't to say we're dumping TypePad either. Their blogging tool works great and we may just keep the blog there but build up a bigger site around it. Not sure yet.
I'll post soon with background on setting up the platform and our progress...
Monday, April 02, 2007
After about 80 hours of struggling to get Ubuntu to a usable and consistent state (yes, I feel less than brilliant about that), I finally concluded the hard drive I'd dug out of my box of obscure, random computer parts was bad itself. Way to go Einstein.
I found a deal on an 80GB, 7200RPM drive at Microcenter for $50, purchased it for pick-up on their web site, pulled the jumper, attached the 40-pin, mounted it to the chassis, booted into and installed Ubuntu, updated the distro, and wala: Ubuntu lives! Insultingly, this entire effort, including time spent retrieving the hard drive from Microcenter consumed a whopping 2 hours.
Mom visited this weekend. I spent 10 minutes walking her through the interface, how to configure the wireless card when returning home, and using OpenOffice.
So, the easy ;-) part is through and now we move into the support phase of our experiment...
Friday, March 30, 2007
Tuesday, March 27, 2007
In our case, our compiled DLLs reside in a separate directory named /build. Thus, with MSBuild writing DLLs into the /obj/Debug directory, it would always rebuild the DLL (thinking it didn't even exist). These "modified" DLLs would be checked into source erroneously.
To overcome this, I interrogated the Microsoft.Common.targets file to see what the MSBuild team was doing. (This file sits in [Windows]\Microsoft.NET\Framework\v2.0.50727) To truly override the output directory, I'm using the IntermediateOutputPath and BaseIntermediateOutputPath properties. My MSBuild looks something like this:
Sunday, March 25, 2007
Thursday, March 22, 2007
I've been active on their newsgroups while constructing my client's solution. My FinalBuilder posts.
Saturday, March 17, 2007
Sunday, March 11, 2007
At first in my research, I discovered TFS is (somewhere...RegProxyFileCache.xml I think) configured to look for WSS (Sharepoint) Admin at port 17012. Some folks identified a second install of WSS leads to the incorrect port for WSS...thus causing a TFS project creation error. This was not the case for me.
Finally, upon highly scrutinizing the project creation log file, I found an inner, inner, inner exception reading:
Exception Message: The request failed with HTTP status 403: Forbidden.Checking IIS on the TFS instance for the "Sharepoint Central Administration" site, I opened the Directory Security tab. Sure enough, the "IP address and domain name restrictions" option was set to default deny and only granted to localhost (127.0.0.1). Ugh. Security. ;-)
To resolve, I simply set the option to default grant. Project creation successful! I hope this helps someone avoid this issue.
Thursday, March 08, 2007
Visual Studio 2005 Team Edition - The Integrated Development Environment (IDE) technology workers use to accomplish work. There are five "editions", each targeted to a particular role:
- Visual Studio 2005 Team Edition for Software Developers
- Visual Studio 2005 Team Edition for Software Testers
- Visual Studio 2005 Team Edition for Database Professionals
- Visual Studio 2005 Team Edition for Software Architects
- Visual Studio 2005 Team Suite - This edition encompasses the functionality of the other four. It's an extra $1200 but I recommend it. The crossover value is well worth the money.
Visual Studio 2005 Team Test Load Agent - This add-on module leveraged by Visual Studio simulates virtual users against a web site. It is used in conjunction with the Web Test functionality within Visual Studio 2005 Team Edition for Software Testers.
Visual Studio Team System - This moniker refers to the entire line of products...including all of the above: Visual Studio Team Edition, TFS, and the Load Agent. It is not a product per se but a line. I.e. one cannot purchase Team System, one purchases the individual components of Team System.
Wikipedia Team System Entry
Tuesday, February 27, 2007
Friday, February 23, 2007
You are Green Lantern
|Hot-headed. You have strong|
will power and a good imagination.
Click here to take the "Which Superhero are you?" quiz...
Sunday, February 18, 2007
Some of my favorite Team Foundation Server / VS.Net Team Edition tools and links:
- Microsoft Visual Studio 2008 Team Foundation Power Tools
- Microsoft Visual Studio 2005 Team Foundation Power Toy
- Power Toys
- Process Template Editor GUI
- TFS Synchronizer 1.1 for Mercury Quality Center
- Naren's List
- Team Foundation Server Administration Tool
- Accentient TFS Link Mecca
- Team System Rocks
- Digerati Tech
- Buck Hodges TFS Tools List
- MSDN TFS Forums
- VSTS Resources Map (Clark Sell's Mind Map...cool)
- TFS Build Recipes
- CodePlex VSTS Guidance
- CodePlex Performance Testing Guidance
- CodePlex Branching Guidance
- Prescriptive Guidance for Visual Studio Team System
- patterns & practices Team Development with TFS Guide
- Operations Guidance for Team Foundation Server
- VS.Net Team System Site
- Team System Rocks - Tutorials
- Visual Studio Team System Basics Training
- Learn Visual Studio Team System
- Visual Studio 2005 Team System Learning Guide
- Notion Solutions Orcas, Rosario WebCasts
- Lap Around VSTS 2005
- VSTS Overview for Financial Services
- Visual Studio Team System 2008 Team Edition Comparison
- Visual Studio 2008 Product Comparison
- Pro Visual Studio 2005 Team System
- Clark Sell's List
- Professional Team Foundation Server
- Visual Studio Team System: Better Software Development for Agile Teams
- Software Engineering with Microsoft Visual Studio Team System
Source Structure / Branching
Friday, February 16, 2007
Wednesday, February 14, 2007
Monday, February 12, 2007
Situation: We have an Int64 "b" I need to convert into an Int32 "a". How should we set a = b in the safest manner (i.e. no data loss)? Here are some options:
- Line 15 does not compile throwing a "Cannot implicitly convert type 'long' to 'int'. " exception.
- Line 17 properly raises an OverflowException.
- Line 19 does _not_ throw an exception. a's value incorrectly becomes 1569325055.
- Line 21 properly raises an OverflowException.
Many developers unknowingly choose Line 19. Bugs introduced with this code can be some of the nastiest to track down. Be safe out there! Convert explicitly using the Framework.
Good web links for conversion:
Jeff Adkin's Data Conversion posting
Explicit Numeric Conversions Table (C# Reference)
Friday, February 09, 2007
Tuesday, February 06, 2007
Saturday, January 20, 2007
I urge you to join in with Lance's army. The V Foundation and the American Cancer Society are also responsible agents in the fight against cancer.
- Dave Donaldson's review of NHibernate. This guy just impresses me. He's not a rock star (as in unapproachable, full of himself) but more like the people's developer. Down to earth. Human. Wants to help. I'm excited about the prospect of NHibernate. I've used NetTiers with good success but never really pushed the limits. Although, LINQ may trump NHibernate...
- LINQ. This Object-Relational Mapper (ORM) will revolutionize traditional data access tier development. The Microsoft developer community made solid progress in recent times through leveraging shared source tools such as Enterprise Library/Patterns & Practices and FxCop and open source tools like NUnit. Embracing agile and TDD also helps. But, I think LINQ will finally bring ORM to a place where developers feel comfortable implementing it and enterprises feel comfortable allowing it into their shops (there's still a reluctance to accept OSS in a lot of the bigger shops). Guthrie's demos and information nailed it on LINQ.
Friday, January 19, 2007
- Bruce Eckle - Listen to him speak if you get the chance. Abstract but a good message: we must experiment to learn; your assumptions are probably wrong; designing up front will likely miss the mark
- Ted Neward - I love it when people break through the religion and the BS to tell it like it is. Ted discussed embracing both Java and .Net to create the best solution to a business problem.
- Pillar programming problem contest - I spent about an hour trying to figure this one out on a spreadsheet and failed miserably. ;-) (I think I'm missing some constraints...) Regardless, it was a fun exercise and likely, a great way to attract solid developer candidates.
- Video games - I've never been a gamer but I find the innovation intriguing. The Wii over at Quick Solutions seems to be the biggest draw. XBox 360 at Microsoft was a close 2nd.
- Booth babes at Compuware - Enough said. (Note to Compuware: guys, this just won't yield candidates...we're not that shallow)
- Free pop - I don't drink pop but a lot of developers do. Props to Pillar for dropping $1000 on pop Thursday
- Open Spaces - A concept from Bruce Eckle and Martin Fowler for informal, engaging gatherings to experience ____ (fill in the blank). A neat idea.
- Wireless access (free!)
Monday, January 15, 2007
Sunday, January 07, 2007
My purpose in installing TFS is learn the product and prepare to share with others through demos and presentations. So, I'm working off a Dell Inspiron 6000 laptop running Windows XP. Also, I chose Workgroup Edition because I don't want to mess with CALs and I don't intend to upgrade to Standard or Enterprise Edition. Workgroup and Standard are the same except Workgroup limits to 5 users.
TFS doesn't support Windows XP and I don't want to run Win2k3 Server so I'm using Virutal PC to host my TFS instance. This, BTW, is an amazingly effective and safe way to install beta or stuff you just want to try out without horking your base OS.
Of further difficulty, Virtual PC (and TFS) want a lot of memory. I only had 1GB so I had to upgrade to the max 2GB.
- Install and configure a Virtual PC instance with Win2k3 SP1
- This should install the .Net Framework 2.0 but double check...
- Install IIS (enable ASP.Net) and SMTP
- Create two accounts for TFS services. I named them TFSService and TFSReporting. I added them to the local Administrators group
- Install SQL Server 2005 Standard Edition (Developer is not supported). I installed under a separate local account I created named SQLService. I added this to the local Administrators group.
- I logged in as TFSService from here on out to install the remaining software.
- Important: Before installing WSS in the next step, read "How to: Install Microsoft Windows SharePoint Services for Team Foundation Server". You *must* install WSS to leverage SQL Server instead of the default MSDE database installed with WSS. You can do this by selecting the Server Farm option during WSS's installation. Otherwise, you'll need to uninstall WSS and re-install from scratch. Unfortunately, the TFS install doesn't enlighten you to your mistake until well into the install. (Oh yes, I'm speaking from experience...) If you accidentally skipped this step, make sure to uninstall both WSS and the Sharepoint instance of MSDE. Otherwise, the Server Farm option will not appear on the WSS install.
- Install WSS 2.0 with SP2...not 3.0. Sharepoint 3.0 and WSS 3.0 is not yet supported for TFS...even TFS SP1. I did not have to install Sharepoint Portal Server...just WSS.
- When WSS prompted for the IIS Application Pool, I chose StsAdminAppPool from the drop-down.
- Important: When WSS prompted for the Configuration Database, I chose "." for the Database Server, "STS_Config_TFS" (you *must* use this name) as the name of the database, recall I'm logged in as TFSService so I kept the Windows Auth option,
- Install SQL Server 2005 KB914595 Hotfix (x86)
- Install ASP.Net 2.0 QFE KB913393. I don't believe the KB ever actually got published but the install is included on the TFS media.
- Install TFS using the Single-Server option. On a non-server class machine and/or virtual instance, you may get a processor or disk space nasty-gram but these were just warnings. I used the two accounts I created earlier, enabled SMTP alerts, and accepted the default install location.
- Install Team Explorer.
- Install KB919156
- Install TFS SP1.
Some final links applicable to the process:
New TFS Install and Sharepoint versions
Upgrading to Team Foundation Server SP1 – Workgroup Version and a Gotcha!!
Is it safe to install VS2005 SP1 on client machine without updating the TFS server?
TFS and Sharepoint 2007 (now that would be cool)
Warning about upgrading WSS to v3.0 on Team Foundation Server
Update 01/22/2007: When attempting to create a new team project, I kept receiving an HTTP 403 error. This post resolved the issue.
Update 01/22/2007: After resolving the 403 error, I experienced a 503 permissions error. I checked the NT Event log noticing a web service permission issue accessing the database. Checking SQL Management Studio, I noticed several databases were in single user mode. I switched them to multiple, shut down, and restarted Visual Studio. I also needed to restart IIS. All was well. Some helpful posts:
Update 02/10/2007: Insightful post regarding issues with TFS SP1; Updated TFS SP1 Install Guide
Update 03/11/2007: I discovered Team Explorer is not installed by default with VS.Net Team Edition. The Team Explorer setup resides within the TFS install media under a folder named "tfc".
Update 03/11/2007: Finally overcame the "Unable to connect to the Windows SharePoint Services" error. Solution.
Friday, January 05, 2007
Retrieve all .Net 1.1 source code from source code control repository
At the root directory, use “DIR /C /B *.csproj >> projects.txt” at a command line to dump the full path of each C#.Net project into a file
Use the /upgrade option with devenv to convert the .Net projects to 2.0 (devenv "MyProject.sln" /upgrade)
- Open a new worksheet in Excel
- Type devenv in the A1 cell; copy it down into the next several hundred rows
- Open the projects.txt file, select all, and copy
- Placing the cursor in cell B1 in Excel, paste
- Type /upgrade in the C1 cell; copy it down into the next several hundred rows
- In the D1 cell, paste in the following formula =A1& " " &amp; B1& " " & C1; copy it down into the next several hundred rows
- Select the D column and copy
- Create a new file called convert.bat
- convert.bat and paste the clipboard from Excel into the file and save
- From a VS.Net 2005 command line, execute the convert.bat file piping it to convert.log: convert.bat >> convert.log
This process will upgrade the projects to .Net 2.0, create a backup of the original files, and output an upgrade report in XML format (UpgradeLog.xml).
Using Windows Explorer or your favorite searching tool (RegEx, FindStr, etc.), find all the UpgradeLog.xml files possessing the string “
Resolve all upgrade / conversion issues. Likely, this will be a manual process. (i.e. open up the project and resolve issues)
Use MSBuild to compile the newly-converted .Net 2.0 projects
- In Excel, copy the column containing all project files (B)
- Open a second worksheet; paste into column B
- Type msbuild in the A1 cell; copy it down into the next several hundred rows
- In the C1 cell, paste in the following formula =A1& " " &amp; B1; copy it down into the next several hundred rows
- Select the C column and copy
- Create a new file called compile.bat
- Open compile.bat and paste the clipboard from Excel into the file and save
- From a VS.Net 2005 command line, execute the compile.bat file piping it to compile.log: compile.bat >> compile.log
Resolve all compilation issues. Likely, this will be a manual process. (i.e. open up the project and resolve issues)
- Broken references
- System.Diagnostics.Assert no longer supported. Use System.Diagnostics.Trace.Assert()
- Post Build Events e.g. GAC’ing using hard-coded gacutil.exe path (e.g. call "c:\program files\Microsoft Visual Studio .NET 2003\common7\tools\vsvars32.bat")
- Broken pre/post-build event scripting
- Enterprise Library hard-coded paths (e.g. C:\Program Files\Microsoft Enterprise Instrumentation\Bin\Microsoft.EnterpriseInstrumentation.dll)
- C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Lib\' specified in 'LIB environment variable' -- 'The system cannot find the path specified. ' à Resolution: remove all vc98 references from LIB path, reboot
- Use project properties dialog to set keyfile instead of within AssemblyInfo.cs ([assembly: AssemblyKeyFile(@"W:\ServiceFramework\_setup\key.snk")]) – could be scripted
- Many events and methods unavailable in Enterprise Library 2.0
- NUnit 2.0 implementation different / incompatible from 1.0 (Broken/missing test harness projects)
- Missing framework references
- Missing web.config files
- 'System.Xml.Xsl.XslTransform' is obsolete: 'This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202'
- Devenv /upgrade converts .Net 1.1 web applications to .Net 2.0 Web Site Projects instead of Web Application Projects. These projects must be individually converted from WSP to WAP.
WIN 70-536 70-526 70-548
EA 70-536 70-526 70-528 70-529 70-549
Finally, while few materials are available, these are the self-study books I'm aware of (most not yet published):
MCTS Self-Paced Training Kit (Exam 70-536): Microsoft .NET Framework 2.0 Application Development Foundation
(Not yet published...)