Three Is It
Because two isn't enough and four is just too many
Terror is a tactic. We can not wage "war" against a tactic.
Congressman Ron Paul
Home
Blogs
Genealogy
Brad's Bookshelf
Subscriptions
Contact
Sign in
About the author
Brad Butts
is a .NET developer and architect. He is
married with children
and enjoys reading, working out, and genealogy is his five minutes of spare time.
E-mail me
Search
Include comments in search
National Debt Clock
Recent posts
Hyperlink Text in a SharePoint 2003 List
Suggestions for Microsoft, Part 1
aspnet_merge.exe exited with code 1
Deploying to different environments
WCF, Interop, and the elusive BinarySecurityToken
Recent comments
Suggestions for Microsoft, Part 1
(4)
Jim Lamb
wrote: Thanks so much for taking the time to write up thi…
[More]
Suggestions for Microsoft, Part 1
(4)
Igor Abade
wrote: And with regard to frustration #3, WiX is the way …
[More]
Suggestions for Microsoft, Part 1
(4)
Igor Abade
wrote: Brad, you don't have to buy another VS license in …
[More]
Suggestions for Microsoft, Part 1
(4)
JoC wrote: RE: Frustration #2 http://blogs.msdn.com/ms_joc…
[More]
Brad's Bookshelf
(1)
Nuno Gomes
wrote: Hi Brad, A few weeks ago I made a bookshelf wid…
[More]
Nailed It
(2)
Brad
wrote: I tried to bend it with my mind at first, but the …
[More]
Nailed It
(2)
Art wrote: You bent that with your hand??? Impressive! I ca…
[More]
Archive
2008
November (1)
October (2)
September (6)
August (3)
July (7)
June (5)
May (9)
Authors
Brad (33)
Tags
asp.net
being prepared
blogengine.net
config
dependencies
deployment
education
exercise
flair
frustrations
motivations
msbuild
security
sharepoint
teched
testing
tools
vs2008
vsto
wcf
Categories
Genealogy Blog (3)
Miscellany (4)
Technology Blog (26)
Blogroll
Download OPML file
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.
© Copyright 2008
<< Back from TechEd
|
TechEd08 Notes: Day 2 >>
TechEd08 Notes: Day 1
Session: Taking Advantage of Microsoft Enterprise Library for Visual Studio
This session was held in one of the conference theaters: a section in the middle of the large conference area floor cordoned by 10' high cubicle walls with seating for about 50 people. Last year, I found these venues frustrating because of all the noise around the theaters: the main conference area floor played host to not only the theaters, but to tens of booths manned by Microsoft employees on hand to answer questions about specific technologies, the lunch area, the vendor section, and a number of other noise-inducing distractions. This year, while much of the environment remained the same, I did notice that the theaters seemed better constructed to muffle the outside noise--at least, I could hear the speakers much better this time around. I'm sure the fact that Microsoft split the conference up into separate Developer and IT editions--reducing the attendance by about half--helped reduce the ambient noise, as well.
One problem solved. The next problem, though, was seating. The theaters played host to a number of interesting topics and, as a result, a number of people would show up to these sessions. If you wanted to get a seat, you had to be at least 20-25 minutes early. If you wanted to get some room on the carpet, you usually had to be at least 15 minutes early. Once seat and carpet were full, forget it: you could stare through the glass wall at the back of the make-shift room, but could hear no sound.
As to my thoughts on the session on Enterprise Library? Well, I arrived at the theater at about 5 minutes before the start of the session. Better luck next time, I guess.
Session: Messaging, Identity, and Workflow in the Cloud
Since I couldn't attend the session on Enterprise Library, Plan B was to check out this session on Messaging, Identity, and Workflow. I had no idea what this session was about exactly, but I've been struggling with messaging (.NET to JMS, specifically) and identity (web service authentication, to be exact) at work, so surely this session would offer some value to me in those areas.
Well, this session was all about a new offering from Microsoft:
Biztalk Services
. Biztalk Services (not to be confused with Biztalk Server) is an experimental offering to foster better connectivity between service endpoints. It includes some pretty interesting security and entitlement features to help you secure your services. I don't see much business value here (for one, this service is an unsupported experiment), but it seems like something that might be fun to play around with. Presenter
Justin Smith
played a very entertaining
video
involving Biztalk Services and robots--that alone made for great session material!
Session: Architect or Developer: Tips and Tricks for Guiding and Supporting Innovation
Boy, it sure would be nice to have a culture of innovation at work. Sounds like this session is poised to offer me great advice on promoting such concepts at my company. Unfortunately, the timing of this session gave me only 15 minutes to traverse the conference floor from my previous session, wade through the lunch line, wolf down lunch, and high-tail it to this session. Oh, and yes, it was being hosted in one of those dreaded theaters. Guess I'll pass on this one, too, and enjoy my pastry dessert.
Session: Writing Administration Tools for your Applications
This session was presented by
Brian Randell
in one of those dreaded theaters, again. I attended one of Brian's presentations last year--don't remember the title. However, I do remember him making an intriguing statement: something to the effect of, "since we now have Powershell, is there a need anymore to write .NET console applications?" This statement motivated me to look harder at Powershell as an alternative hosting "UI" for my .NET binaries. For instance, there has been a revival over the last two or three years in the separation of concerns paradigm in ASP.NET development. Specifically, we've seen multiple, robust implementations of the
MVP
and
MVC
patterns appear recently. One argument in favor of adopting these patterns is the code-reuse argument: that, if we properly separate the business operations of an application away from its UI, that code base can be reused elsewhere. So, I should be able to take the code base of an ASP.NET application and front it with a Winform or WPF UI to suddenly turn the application into a desktop app. Could I not then also take that same code base and front it with a Powershell script and turn the application into a command line driven application or even a batch-based application that I can schedule to run nightly across thousands of records? But I digress.
Brian began his talk by quoting from the TechEd mini conference guide regarding the nature of sessions that are suppose to occur in these "interactive" theaters:
Small and informal (so explain why there was no room for me at the previous theaters I wanted to attend)
Interactive and discussion based
Chalk talk and white board formats
30-75 minutes in length
Interactive and discussion based. In other words, "I have no thorough presentation for you based on my research and experience. Rather, I want to hear what you, the attendees to this session, think should be the solution." Great. I was really hoping Brian would share some examples of administrative tools he's written in the past, particularly with Powershell (in reference to his last year's comment). Instead, he presented a list of important points he felt an administrative tool should address. When I say administrative tool, I mean a tool you write to administrate your actual solution. In my mind, this could be a tool to alter configuration settings--perhaps turn on, turn off, or somehow change diagnostic settings, change connection strings, and so on--a tool to view log information, etc. Even though I was expecting a standard presentation on this topic, Brian still conveyed some interesting information.
He noted that the Visual Studio 2008 IDE could be deployed as a shell--without all the code editors and other tools and plug-ins you normally get with your license, I guess. This makes sense because that's how the Team Foundation "fat client" deploys. Normally, you access TFS from a TFS plug-in in Visual Studio; however, if you want to access TFS from a machine in which Visual Studio is not installed, you can install the TFS fat client, which is just the Visual Studio shell plus the TFS plug-ins. Brian mentioned that admin tool option could be writing a Visual Studio plug-in and then deploying your plug-in with the Visual Studio shell.
He mentioned that tool developers should consider the different UI options: command line, Winform, Web and even devices. Specific technologies could include Powershell, WPF, and even the Microsoft Management Console (MMC). On MMC, he said that for older versions, writing your snap-in was difficult. Typically, you'd have to write your snap-in in C++ or VB6. However, the new version of MMC, version 3.0, apparently allows for greater extensibility options. Brian mentioned that the February 2007 Windows SDK (and greater, presumably) includes support for MMC 3.0 snap-ins and samples. MMC 3.0 will only work on Windows XP SP2 and Vista. Will it work on Windows 2003? Don't know.
Other considerations could include support for COM so that admins would have the option of scripting the tool from within VBScript or JScript. My thought: forget that. Isn't this another reason we now have Powershell? Someone in the crowd mentioned that Powershell templates in Visual Studio made it easier to write Powershell scripts. I wonder if he was referring to
this
?
Finally, I noted some of Brian's thoughts around leveraging WMI for administrative management. He mentioned that Visual Studio 2008 makes it easier than ever to take a look at the types of data published to WMI. In the Server Tool, there's a node labeled as Management Classes and another labeled Management Events. These nodes let you take a peek at the WMI world on your machine. Right-clicking either node gives you more options.
Session: Decoupling Contract from Implementation: Microsoft .NET Interface-Based Programming End-to-End
Juval Lowy is a man on a mission: hide your implementations behind interfaces always and all the time! And what's this crap about Microsoft's increasing use of abstract base classes? Abstract base classes are too lenient in that deriving classes are not required to provide implementations for every method and so on. Interfaces are the way to go. Juval covered some very interesting tricks you can leverage for explicit implementations of interfaces and casting. I'm definitely going to have to pull down and go over this presentation again when the TechEd media comes out.
Session: From Zero to N-Tier in 75 Minutes
Paul Sheriff
presented this session. Paul's a fairly prolific writer in a few of the technology journals out there. I do remember seeing his name on particular articles from time to time.
So, what is a Tier and what is a N-Tier architecture? In most circles, technologists will tell you that a Tier is associated with a physical layer of an application. For instance, you could host business processing components on an application server. You would probably call that the Application Tier. An application's database is usually hosted on a physically separated server called the Database server. This would be known as the Data Tier.
Tier is contrasted with Layer: most technologists will tell you that a layer is a logical separation of certain components. For instance, good development practice would insist on separating all business processing code away from the user interface. The user interface components--ASPX pages and such--would live in a UI layer while the separate business processing code would live in a Business layer. The Business layer itself would be further broken down such that code used to access data repositories would be separated out to yet another layer traditionally called a Data or Infrastructure layer.
So, with this kind of understanding, I was eager to see what Paul would come up with: would he advocate an SOA approach to N-Tier architecture by demanding that all business processes live behind WCF services in an application farm? If so, what kind of bindings would he recommend? What kind of security would he recommend and would he discuss caching of security credentials to improve performance? If not WCF, would he recommend .NET remoting? I've done very little with remoting, so it would be very interesting to hear what arguments he might have for .NET remoting in a WCF world. Aside from WCF and .NET remoting, what other considerations should we take into account when architecting a .NET, N-Tier solution? Would Biztalk Server fit somewhere in here?
Unfortunately, Paul didn't present a discussion on an N-Tier solution. Rather, he presented an N-Layer solution discussion. Interestingly, he acknowledged that he knew the differences between the two terms in one of his first slides, yet his entire presentation was about taking a flat .NET solution and refactoring it into multiple logical layers.
I found this pretty frustrating: there are hundreds of posts on the internet on how to construct an N-Layer solution. What is not so widely discussed are the pros and cons of an N-Tier solution and recommendations for how to proceed with such an endeavor. Here's
Rocky Lhotka's thoughts
on the topic (and
David Hayden's
). I probably should have left and looked for another presentation--perhaps that one on multi-core development or that one on WPF data templates. I guess I stayed hoping that he would, at some point, jump into the N-Tier discussion. Alas, he did not. What's more, his refactoring efforts included no discussion of interfaces, MVP, or MVC, nor did he discuss other separation concepts like ORM. Moral of the story: don't just rely on the session title to tell you what concepts will be discussed.
Be the first to rate this post
Currently 0/5 Stars.
1
2
3
4
5
Tags:
teched
Categories:
Technology Blog
Posted by
Brad
on Thursday, June 12, 2008 4:27 PM
E-mail
|
Kick it!
|
DZone it!
|
del.icio.us
Permalink
|
Comments (0)
|
Post RSS
Related posts
TechEd08 Notes: Day 2
TechEd08 Notes: Day 3
TechEd08 Notes: Day 4
Add comment
Name*
E-mail*
(Will show your
Gravatar
icon)
Website
Country
[Not specified]
Albania
Algeria
Argentina
Armenia
Australia
Austria
Azerbaijan
Bahrain
Belarus
Belgium
Belize
Bolivia
Bosnia and Herzegovina
Brazil
Brunei Darussalam
Bulgaria
Canada
Caribbean
Chile
Colombia
Costa Rica
Croatia
Czech Republic
Denmark
Dominican Republic
Ecuador
Egypt
El Salvador
Estonia
Faroe Islands
Finland
France
Georgia
Germany
Greece
Guatemala
Honduras
Hong Kong S.A.R.
Hungary
Iceland
India
Indonesia
Iran
Iraq
Ireland
Islamic Republic of Pakistan
Israel
Italy
Jamaica
Japan
Jordan
Kazakhstan
Kenya
Korea
Kuwait
Kyrgyzstan
Latvia
Lebanon
Libya
Liechtenstein
Lithuania
Luxembourg
Macao S.A.R.
Macedonia (FYROM)
Malaysia
Maldives
Malta
Mexico
Mongolia
Morocco
Netherlands
New Zealand
Nicaragua
Norway
Oman
Panama
Paraguay
People's Republic of China
Peru
Philippines
Poland
Portugal
Principality of Monaco
Puerto Rico
Qatar
Republic of the Philippines
Romania
Russia
Saudi Arabia
Serbia
Singapore
Slovakia
Slovenia
South Africa
Spain
Sweden
Switzerland
Syria
Taiwan
Thailand
Trinidad and Tobago
Tunisia
Turkey
U.A.E.
Ukraine
United Kingdom
United States
Uruguay
Uzbekistan
Venezuela
Vietnam
Yemen
Zimbabwe
Comment*
[b][/b] - [i][/i] - [u][/u]- [quote][/quote]
Notify me when new comments are added
Live preview
Thursday, November 20, 2008 6:41 PM