During TechEd in Orlando I had the privilege to spend some time with Mario Cardinal discussing layer module injection and why you would use it. We recorded the session and it is now available on ARCast as of today. Layer Module Injection is a new pattern to enforce separation of concerns between domain logic and infrastructure services. Mario Cardinal and Joe Shirey will explain why to use abstract classes and interfaces as a means to reduce dependency surface. Mario and Joe will discuss the techniques of dependency injection and inversion of control to reduce the coupling between classes. In the same way, they will discuss benefits to modularize and decouple with layers using namespaces. The goal is to explain a new approach to simplify managing dependencies between the modules which compose a program. At the end of this discussion you will understand why architects worry so much about coupling, cohesion and separation of concerns. Mario Cardinal is a senior consultant specialized in software architecture. He is a member of .NET Expertise, a network of independent expert consultants specializing in Microsoft .NET technologies. He has almost twenty years of experience in designing large-scale information systems. He speaks regularly at international conferences, including TechEd, Agile2008, DevTeach, and others. He lead the architecture user group at the Montreal .Net Community and He is the architecture track tech chair for DevTeach Conference. He is also a member of the Microsoft Visual Studio Team System Advisory Council. Furthermore, since 2004, He has hosted the Visual Studio Talk Show, a podcast about software development with Microsoft .NET. Finally, for the fourth year in a row, He has received from Microsoft the Most Valuable Professional (MVP) award. MVP status is awarded to credible technology experts who are among the very best community members willing to share their experience to helping others realize their potential.
ARCast.TV - Mario Cardinal on Layer Module Injection
My team is putting on an event in a number of different cities in the coming months. To register, click on the link for your city: Here is the detailed information about the event: Agile methods are a set of development processes intended to create software in a lighter, faster, more people-centric way. Many development teams have adopted "agile" methodologies to manage change and to improve software quality. These methodologies promote continuous integration as a practice to build and test software products incrementally as new features are included, bugs are fixed, and code is refactored. This one-day seminar will walk provide an overview of Agile Software Development, its principles, methods and values; highlighting of the most widely used, and simplest to apply Agile method known as "Scrum". Please join Microsoft and Neudesic, a Microsoft Gold Certified Partner for this one-day seminar. Thank you, we look forward to seeing you there! COURSE OVERVIEW Introduction to Agile (What, Why) | Agile methods are fast becoming commonplace in software development practices for many organizations. However, they represent a significant paradigm shift in the way in which stakeholders and team members are engaged, projects are planned, manner in which the team reacts to change, and which teams work together. The session will provide an overview of Agile Software Development, its principles, methods and values. Participants will learn the reason why Agile Methods are gaining share in software projects and driving up ROI. Scrum Essentials | Several methodologies live within the space known as "Agile Software Development". One of the most widely used, and simplest to apply Agile methods is known as "Scrum". This session teaches the essentials of how to use "Scrum" on projects, focusing on the techniques and practices that development teams require while working on an Agile / Scrum project. The session will provide the required practices, roles and rules of Scrum, and answer specific questions about how to apply Agile Methods (via Scrum) to projects. Participants will review how a product backlog is used to plan a sprint, and learn how to read project status through a sprint backlog and burn down chart. Agile Planning and Estimation | Session teaches how to plan the scope and schedule of a Scrum project, focusing on hands-on project planning techniques for Agile teams. Requires familiarity with Agile software development (or prior attendance to the above sessions). The following areas are discussed -- how to: -
Set up a winning project "constraint profile" -
Manage customer / user scope expectations -
Create a release plan -
Create and prioritize a product backlog -
Use relative estimating -
Measure team velocity Team Foundation Server | See how Microsoft’s Team Foundation Server can support your team’s Scrum process to fully benefit from Scrum’s practices and rules. In this session we’ll discuss how you can use TFS to leverage the Scrum essentials learned in the earlier session. C-Level Speaker | In this final session, we will hear a “real-world” example of how Scrum is successfully being used today in a development organization. AGENDA | Tuesday, September 23, 2008 | | 8:30 AM-9:00 AM | Registration, Welcome & Breakfast | | 9:00 AM-10:30 AM | Introduction to Agile | | 10:30AM-10:45 AM | Break | | 10:45AM-11:45 AM | SCRUM Essentials, Part 1 | | 11:45 PM-12:45 PM | Lunch | | 12: 45 PM-1:45 PM | SCRUM Essentials, Part 2 | | 1:45 PM-2:45 PM | Agile Planning & Estimation | | 2:45 PM-3:00 PM | Break | | 3:00 PM-4:00 PM | Team Foundation Server | | 4:00 PM-5:00 PM | C Level Speaker | Hope to see you at one of the events.
Thanks to all who attended the Denver VSTS Event. Mickey has posted a debrief from session on his blog including links to his slides. I have uploaded my slides here.
The latest MSDN Architecture Journal has been released with a focus on "The Role of an Architect". I feel very strongly that being an architect is more than being a great technologist or understanding patterns. People skills separate the ordinary from the very effective. Because of that, I submitted a topic and wrote an article that appears this month about architect soft skills. While you are there, check out the excellent article by a peer of mine in Denver, Joseph Hofstader (it is great that we have two people in Denver contributing this month). I enjoy any article that contains a Homer Simpson reference.
When I am working with customers there are a couple of topics that seem to always come up - methodology and tools to support development. My team has collaborated with one of our partners, Neudesic, to put on an all day event that focuses on these topics. In particular, there will be a focus on Visual Studio Team System. However, I will be delivering a session in Denver, Irvine, and Phoenix (I had a conflict with LA) with no product focus. I intend to discuss best practices and lessons learned around adoption of process in the development lifecycle. I am excited about this presentation because while tools are important, I find that there are many other factors that are just as critical. If you think the day will be valuable or know someone that would enjoy it, please pass along the appropriate link: Hope to see you there.
I have a Blackjack II and have really liked the phone so far (although I really want a Sony Xperia X1 when it releases). Recently I mentioned to a couple of friends how much I liked the BJII and they went out and purchased them. They liked them also, but wanted a home screen with smaller icons so they could better maximize their real estate. Here is the Windows Default Layout (notice that the mail/messaging notifications are below and it is necessary to scroll down to get them). Here is the layout after I changed the home screen around a little bit. I changed to smaller icons and moved around a few of the items so my mail/messaging is above the profile. I have posted the new home screen here. If you want to try it out, save it to the XML file to your device in the Application Data\Home directory then go into your settings and change the home screen to "Default with Small Icons". Warning, I have not taken the time (nor do I have the ability) to internationalize the XML file so if you are using a different language than US English you should open the XML file and change the name to be appropriate for you. Also, if you want to move things around in the home screen, it is quite easy. Just open the XML file and reorder the <plugin> elements to match your liking.
I wanted to thank everyone that showed up for my presentation on Office Development with Visual Studio in both Denver and Phoenix. I wanted to put together a follow up with code samples if you are interested in digging into the topic further. - The first demo that I did was a Word add-in that hooked into a set of web services. I have a posting with a how to video about creating a Word add-in here (requires the Silverlight runtime). The specific demo that I did in Denver wires up a Word Add-In to the Northwind database. I have posted that code here - you will need to download and install the Northwind sample database and set the connection string to get it working. The sample I used in Phoenix was slightly different and was dependent on services that were created in other sessions. If you were in Phoenix and want to look at some working code go ahead and download the sample above. It is pretty much the same as the demo I did in Phoenix but hooks into a database directly rather than consuming services. I have posted the code I wrote in Phoenix here, but the code will not work without the services back end so it would be reference code only. I also showed how to lookup the Office Icons using the Office Developer Power Tools in Phoenix.
- In the second demo I created an Outlook add-in with some ribbon customizations and an Outlook form region. Because the code I used in both Denver in Phoenix was dependent on the other sessions I don't have a working add-in to post. However, I have posted the code here for you to download if you want to just see the code.
- In my third demo I showed how you could use System.IO.Packaging to manipulate Word documents on the server without needing to actually run Word on the server. In Denver I used a sample that is posted here and should just work because the data is encapsulated within the project. I have also posted my demo from Phoenix here but again it is dependent on other services so the code would be for reference only. If you are interested in this method of working with Office documents on the server, there is a good MSDN article about this. I also use the Word Content Control Toolkit to show how arbitrary XML can be databound to Content Controls within Word.
Hopefully you enjoyed the session and found it worth your time. If you found this session interesting, I would recommend exploring the Office Developer area of MSDN to drill into any of the topics we discussed during the session.
Pretty much since the time I left the Denver Launch until now I have been on the road (I am blogging this from DIA right now as I head to Seattle). I will update this with a few more things when I get a minute to breathe, but for those of you who were interested in some of the code/topics from the Office Developer session you can check out my posting from here where I used a number of the same or similar demos. Be early next week I will expand this posting so it maps more closely to the session. Thanks for coming out and we will see you an another event soon. Update: I finally have a few minutes this morning and have finally put together a more detailed post about the session. I also wanted to publicly thank Stephen Smith from Starz for spending a few minutes with us during the developer keynote to tell us how Visual Studio 2008, WPF, WCF, and WF have been essential for their video encoding and distribution project.
 
|