Saturday, March 08, 2008
#
The majority of my blog posts are not exposed externally, but when a group of folks asked me to do an external post on my thoughts about the Microsoft Mix conference in Las Vegas this week, I gladly said, “Sure!”. So here we go…Attending the conference was time well spent for me and consequently, I’m more confident than ever that not only is Microsoft building the platform, tools and plumbing for the next generation of applications, but that InterKnowlogy is perfectly aligned as experts in these technologies - specifically WPF and Silverlight.
I have been a strong advocate and evangelist for “the smart client revolution” for many years. When .NET Windows Forms 2.0 shipped ~ 5 years ago, the deployment and maintenance nightmare of COM was nearing an end. And finally people started seeing that in most cases building browser based applications inside the firewall was just silly – especially when you consider the developer productivity achieved. Let’s face it. It simply is much easier to build windows apps than it is to build browser based apps. I call this the Winform phase of the Smart Client Revolution.
In 2005, WPF shipped and took client apps to the next level. WPF allows us to do things in design, usability, and UX that we never speculated would come so quickly. In all honesty, WPF took me totally by surprise. The paradigm was different, and difficult. But the results were so compelling. I call this Phase II.
In my opinion, we are in the 3rd phase of the smart client revolution: The Silverlight phase. Silverlight gives us the ability to build rich client applications and manifest them in the browser…cross platform! It’s basically WPF for the browser. Sure it’s a light version of the .NET framework, but at a 4.3 mb download there are tough choices to be made on what goes in and stays out.
I am speculating here, but in phase 4 we are headed for a world where:
· The rich clients of WPF are going to collide with applications delivered in the browser.
· There will be no delineation between web and windows. The tool (Visual Studio) will not delineate between the two types.
· Issues of cross platform will be overcome – at least for platforms and devices that have an SDK.
· We’ll have a full blown framework / next generation version of Silverlight where the technical and security challenges of access to the entire .NET framework over the web delivered in a browser will be overcome.
That’s a world I want to live in and it’s happening a lot quicker than I thought it would. For now, the next 18 months of building WPF and Silverlight applications is going to be really fun.
Friday, December 14, 2007
#
I am a huge Visual Studio Tools for Office Fan so when the VSTO team asked me to do a webcast for them, I said, “absolutely yes.” What i didn't realize was how hard it would be to build the demos. There just is not a lot out there for Visual Studio 2008 VSTO 2008 right now, so I am glad to provide the code for the demos i build so that you can “run“ with them.
I can tell you that the genesis of the idea for this presentation goes to Paul Stubbs of the VSTO team. He is a brilliant guy and a genuinely great guy and until i read his article in msdn magazine, i had pretty much given up on document-centric solutions for visio and powerpoint. So, thank you paul for inspiring me to take your ideas to the next level.
The links to the demos and the ppt deck from the MSDN Webcast I did on 12/14/07 Called, “Office Development in Visual Studio - PowerPoint and Visio Solutions“:
Download the PowerPoint Deck from the msdn webcast here: Download
Download the first VSTO 2008 PowerPoint Addin demo here: Download
Download the second VSTO 2008 PowerPoint demo that creates a Powerpoint presentation here: Download
Dowload the VSTO 2008 Visio demo that creates a Visio Document here: Download
Wednesday, May 30, 2007
#
This is my first of 2 posts of a great idea by Mike Hernadez of the VSTO team: VSTO: My Favorite Feature. Mike talked a bunch of us VSTO folks into blogging our favorite things about VSTO to get some awareness out there. Check out the ones blogged already here:
Well, my post is about Powerpoint Add in Support for VSTO. there are two amusing anecdotes around powerpoint and VSTO for me:
1. I am the one who is always whining to the VSTO team that we need a document solution for VSTO. I can think of a gazillion .NET applications that our customers want which would be manifested in a PowerPoint presentation. imagine a powerpoint presentation with live data mined from a database of online systems. that's a world i want to live in. it's the ultimate executive dashboard and everyone wants that. when i mention this in vsto presentations to audiences i am always met with a majority of heads shaking in agreement, so i know the world wants this too. it's been a bit challenging for me to convince the vsto team to invest in this. i'm guessing it is becuase it would be pretty difficult for them to build, but there are members of the VSTO team that believe there is no demand for this. that shocks me. i will continue to whine about it. and i would encourgage you to tell the VSTO team we need this too.
2. but, this post is about add in support for powerpoint 2007 in VSTO. like you, when first dealing with the ribbon, i became pretty frustrated. now, that the learning curve is overcome i'm great, of course, but there were some cuss words thrown when things that used to be so 2nd nature suddently disappeared from the menus. one of those was switching from normal to the slide master. becuase i do a lot of presentations, i have to edit the slide master quite freqently. the older i get the harder it becomes for me to remember anything, so i said to myself, “screw this. i am tired of wasting time searching for things in the ribbon so i am going to try to figure out how to code my own menu items with VSTO and put them on my spot on the ribbon so i don't have to constantly look for them.“
I found some great guidance on MSDN and built a little vsto add in that creates a ribbon item that when clicked instantiates a task pane which allows you to easily switch between normal, slide master, notes master, and hand out master views while in powerpoint 2007. now, realize that the functionality is not as impressive as how easy this was to build. This is a great guidance app for any menu item or functionality you want to split out into your own menu item.
Grab the source here: Download
once you stare at the vs.net project, it will take you less than 15 minutes to figure out. This one is in VB, but could just as easily be in C#. when you do a new powerpoint add in project from Visual studio, the VSTO team does almost everything for you. they automatically stub out the COM interop you need to talk to the ribbon. you simply need to uncomment that code:
' TODO:
' This is an override of the RequestService method in the ThisAddIn class.
' To hook up your custom ribbon uncomment this code.
Partial
Public Class ThisAddIn
Private ribbon As Ribbon1
Protected Overrides Function RequestService(ByVal serviceGuid As Guid) As Object
If serviceGuid = GetType(Office.IRibbonExtensibility).GUID Then
If ribbon Is Nothing Then
ribbon = New Ribbon1()
End If
Return ribbon
End If
Return MyBase.RequestService(serviceGuid)
End Function
End Class
<ComVisible(True)> _
Public Class Ribbon1
Implements Office.IRibbonExtensibility
Private ribbon As Office.IRibbonUI
Public Sub New()
End Sub
Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
Return GetResourceText("PowerPointAddIn1.Ribbon1.xml")
End Function
#Region "Ribbon Callbacks"
Public Sub OnLoad(ByVal ribbonUI As Office.IRibbonUI)
Me.ribbon = ribbonUI
End Sub
Public Sub OnToggleButton1(ByVal control As Office.IRibbonControl, ByVal isPressed As Boolean)
Globals.ThisAddIn.MyTaskPane.Visible = isPressed
End Sub
#End Region
They automatically create a little XML manifest for you (ribbon1.xml) that allows you to name your ribbon item and it's properties and ties the thing together.
i built a simple user control that allows you to switch between the views and then one of the most powerful things about VSTO is the one line of code it takes to bind the user control to the task pane:
myControl = New UserControl1
MyTaskPane = Me.CustomTaskPanes.Add(myControl, "My Custom Task Pane")
Try it out. build the project and run it. you'll see a custom task panes button on the add-ins section of the ribbon in powerpoint. when you choose that it will light up the task pane with the combo box in it that allows you to quickly and easily change views while working in PowerPoint.
Tuesday, May 08, 2007
#
Here are the resources mentioned in my MSDN Webcast: VSTO Straight from the Experts on May 9th, 2007.
The Guided Tour for VSTO Excel that will leap-frog you over the VSTO learning curve:
VSTO 2005 Guided Tour.doc
VSTO Excel Guided Tour Source
The Sample applications / reference applications that will get you rolling on building your own applications:
This application can be run in any version of VSTO. it has no design time surface. it's just code that mines a SQL server database, sorts, pretties it, creates a pivot table and then charts the data. you can easily modify this (and many have) to point at your own database
Great Plains or AdventureWorks Sales Orders Source
And here is an awesome VSTO 2005 Excel application I built that facilitates computer management remotely with WMI through VSTO. What's totally cool about this application is that it does an amazing amount of functionality with very little code. This is something you'd never do - manage the computers on your network with Excel - but, the simple fact that you can do it; and do it pretty easily, is a testament to VSTO's power and developer productivity.
VSTO Excel Win32 Services Source
Tuesday, May 01, 2007
#
Hi! My name is Kevin Kennedy and I'm doing a guest spot on Tim Huckaby's blog. I'm a Senior Software Engineer here at InterKnowlogy and I was the dev lead on the app we created for the Peter Kuhn lab at The Scripps Research Institute. They are doing very cool research on cancer and SARS (among many other projects) and they needed a way to share and collaborate around various 2D and 3D assets relevant to their work. To meet that need, we created a WPF smart client application that leveraged a SharePoint back end to enable rich interaction among the members of their group. See the media coverage here: http://interknowlogy.com/IKCorporate/News/Headlines/The+Scripps+Research+Institute+CME+Application+and+the+3D+Collaborator+for+AutoCad+Drawings+Applicat.htm
Near the end of last year, we engaged an international community team with the help of Eileen Rumwell at Microsoft. Included in the group were Szymon Kobalczyk (Poland), Rania Gamal (Egypt), and Haaron Gonzalez (Mexico). All of these developers far exceeded our expectations. This was my first experience interacting with a remote team comprised of this many people from this many different locations. Everyone did a good job communicating despite the challenge presented by the differences in time zones. Despite some other people’s opinions to the contrary, I was very impressed with TFS. Any additional overhead was far outweighed by the increases in productivity, especially in a distributed environment such as this.
Some of the cool stuff the community developers added were three dimensional annotation markers, Office 2007 document preview, integrated SharePoint discussions, advanced authentication scenarios, and a tabbed user interface. Finally, I know it's cliché, but it really does feel good to know that you're helping such a worthy cause. I'm confident all the members of team would echo this sentiment.
Thursday, February 01, 2007
#
Do you believe that software can change the world? How about the opportunity to work on an application that promises to help accelerate a cure for cancer?
Microsoft is sponsoring a project to be built by InterKnowlogy for The Scripps Research Institute
InterKnowlogy, experts in Microsoft .NET Tools, Servers and Platforms, is a Microsoft Gold Certified Partner. InterKnowlogy, is a professional services organization specializing in custom application development and network services focused on Microsoft® .NET. Having customers large and small around the world, InterKnowlogy is well known within the .NET ecosystem worldwide as one of the leaders in .NET application development.
The Scripps Research Institute in La Jolla, California, is one of the largest private, nonprofit biomedical research organizations in the US and a world leader in the structure of biological molecules. Scientists at Scripps Research wanted a better way to organize biological research information and share it with their colleagues. InterKnowlogy developed an application built on the Microsoft® .NET Framework 3.0 with Windows® Presentation Foundation, and Windows Vista™ giving scientists a powerful tool to visualize and annotate research results. This application allowed for faster scientific collaboration, easier access to data and a dynamic development process. You can read the full case study on Microsoft.com.
We are embarking on Release II of the application. I have decided to include four developers from the community in the development team (working for Interknowlogy virtually). Here’s what we are looking for in a software development engineer.
- Well-rounded skills in software application development.
- One who has been working primarily with C# for at least the past two years, with an additional minimum three years of Microsoft .NET framework application development experience (and preferable some 2.0 and 3.0 experience).
- Familiarity with Object Oriented design methodology.
- A successful candidate will have experience with Windows client application development (.NET WinForms, preferably WPF) and web services.
- Desirable to have experience with SharePoint, preferable Office SharePoint Server 2007, Office Document XML, or other custom Office applications. You should also have experience working within a distributed development team.
Does this sound like you? Tell me why we should consider you for this opportunity by replying to Calling all Developers with a one-page word document telling us what you are most proud of in your career and why you should be selected to work on this project. We are going to move quickly on this so tell me now why you would be the right person for the team. This is a paid position. And you might even get some publicity for participating! Thanks for considering being a part of this important project!
Monday, June 19, 2006
#
Here is where you can get all the slides and demos from the WF session from TechEd 2006 that Adam Calderon and i did.
Sorry if everything is not here just yet. We are putting final touches on the guidance documents and guided tours. Keep checking back as we add content or feel free to email us.
Slide Deck
VS.NET source for Sequential WorkFlowMOSS unofficial installation instructions for WF.
Here are the slides and demos from my TechEd 2006 VSTO session.
My celebrity guest, Microsoft's Chad Hower, Regional .NET Developer Advisor (DPE DE) for Microsoft Middle East & Africa is off to Moscow now, then Beirut, Abu Dhabi, Lahore, and Karachi and promises to get his Outlook 12 / VSTO 3.0 demo to me in early July where you'll be able to find here. “Nag” him at: http://blogs.msdn.com/czhower/
Slide Deck
VSTO Excel Guided Tour Source
Great Plains or AdventureWorks Sales Orders Source
VSTO 2005 Guided Tour.doc
And here is an awesome VSTO Excel application I built that facilitates computer management remotely with WMI through VSTO. it's an advanced demo i like to do, but chose not to becuase of (1) the sheer amount of total vsto beginners in the audience and (2) having enough time for Chad to do his demos.
VSTO Excel Win32 Services Source
Sunday, June 11, 2006
#
My VSTO Session at Teched is a broad overview session. I go from the absolute begginner stuff and end in some really advanced stuff. and i have a celebrity Microsoft guest doing a VSTO 3.0 outlook demo. He's famous all over the world, but not so famous in America just yet. - he will be. i'm not going to tell you who it is here. come see the session. he's an awesome speaker and i trust that his demo will be amazing.
| DEV322 - Visual Studio 2005 Tools for Microsoft Office: Building Smart Client Applications |
Level: 300 |
| This session focuses on the power and developer productivity of Visual Studio 2005 Tools for the Microsoft Office System (VSTO). VSTO is a .NET Smart Client technology and this session will delve into the tips and tricks, positives and negatives when designing and building smart client applications with VSTO. VSTO allows you to build managed code applications with .NET languages like Visual Basic .NET and C# and have the functionality of those applications manifest in the rich user interfaces of Microsoft Office Excel, Office Word, Office Outlook and the rest of the Microsoft Office system. Learn just how easy it is to build powerful VSTO applications in this session and how to deploy those applications. This session covers the current 2.0 version of VSTO-Visual Studio Tools for Office, Version 2005 which addresses some of the biggest challenges that Office solution developers are facing today, including separation of data and view elements, server-side and offline scenarios, seamless integration with the Visual Studio tools, deployment and updating. And it will delve into the future of VSTO-version 3-and its coverage of the entire Office system stack. |
Timeslot: 6/14/2006 8:30 - 9:45 Room 107 Products: Visual Studio 2005 Tools for Microsoft Office; Smart Client Audience: Developer; Information Workers |
Friday, June 09, 2006
#
This is my 9th straight year speaking at TechEd and my WF (Windows Workflow Foundation) Session is a first for me. why? it's the first time i have ever had a session outside the developer track. This session, although developer focused, is in the Office track.
This session is an adaption (and beta 2 version) of a successful session that talented office/WF team members, George Hatoun and Eilene Yao from Microsoft have been doing over the last many months. George and Eilene asked me to do this session months ago fully knowing they'd be heads down trying to ship their product during teched. It is my honor to do it on their behalf.
There are three big demos in the session (unlike the 5 little ones i typically do in a dev session).
The first demo has no code at all in it - a first for me - and it is my favorite. it simply shows the WF integration in SharePoint 2007 and Office 2007....but the WF integration is so awesome in SPS 2007 and office 2007 it really excites me. and when i show people they are blown away. to a man everyone i do that demo for agrees by saying, “now that is why we have to upgrade to office 2007.”
the 2nd demo is compelling becuase it builds on the first demo. it's like, “ok, if the standard workflows you get for free in SharePoint 2007 are not enough to fit your needs, here's how easy it is to design and build a custom one in VS.NET 2005. and i hope to portray just how easy and powerful it is to do that.
for the 3rd demo i have a celebrity guest. I have asked c# MVP Adam Calderon to do a demo of a real WF implementation he's helping to do at a real software company. it's advanced WF and i believe the audience will totally dig a middle tier implementation of WF - a very compelling design pattern for WF.
For the last few years I have been having “celebrity guests” do demos in my sessions and it has worked very well. for the last couple years i have had brad sherrell from pacific life join me on stage. he is an amazing talent, a good friend and a fantastic speaker. he's not coming this year and i miss him already.
Come see the session and make sure to say hi.
|
|
OFC312 - Developing Workflows for the 2007 Microsoft Office System and Windows SharePoint Services (version 3) |
253 ABC |
June 13 |
2:45 PM |
4:00 PM |