Skip to main content

Staying Ahead of the Curve

Go Search
Home
  

The life and times of Tim Landgrave, technical evangelist, speaker, author, educator, architect and developer
Virtual PC 2007 has Released to Manufacturing

More great news on the product release front. The final version of Virtual PC 2007 has RTM'd.

VPC 2007 runs on XP and Vista and provides significant performance increases for machines with processors that support hardware virtualization. A VPC running on one of these machines gives you near "bare metal" performance. It's exciting stuff and it's FREE!

Get it here

Microsoft Releases a new Feature Pack for SQL Server 2005

The Feature Pack is a collection of standalone install packages that provide additional value for SQL Server 2005. It includes:

Extending corporate data to the portal

When companies engage me to help them architect their "portal" one of the first issues we address is their definition of a portal. Some customers focus on the portal as a "one stop shop" for information about their customers and processes – a search portal. Others view the portal as the entry point for all of their corporate applications – an application portal. While some view the portal as the primary platform for allowing their employees, and potentially customers, to interact – a collaboration portal. Although each of these portal "visions" has some unique attributes, they all have a common need. That need is access to the vast amounts of data generated by the company's transactional systems.

Developers building portals for their customers using standard web development tools have been frustrated by the need to also build myriad interfaces to the customers' back end systems in order to expose even simple data back to the portal user. While the advent of Web Services makes this somewhat easier by minimizing some of the security and protocol issues, the overall problems with making data from operational systems accessible to the portal user remain. With the release of the Enterprise Edition of Microsoft Office SharePoint Server 2007 (MOSS), Microsoft will include a new feature called the Business Data Catalog that will vastly simplify portal access to corporate data.

What is the BDC?

The Business Data Catalog (BDC) is a set of application interface definitions (also called connectors) which define a standard interface into any set of back end data. This deceptively simple concept enables the MOSS portal to integrate with Line of Business and other corporate applications by presenting a unified view of the data to the portal designer. The BDC uses ADO.NET to connect to practically all popular databases native ADO.NET providers for SQL Server 2005 and Oracle, OLEDB providers for SQL Server 2000, and ODBC drivers for older databases. The BDC can also use a Web Services proxy to connect to any Web Services based API. The net result is that once configured the BDC connectors can be used by the portal designer to display business data on the portal without writing any code.

Partners can present the BDC to their customers as a catalog of business applications that can be used in the implementation of their MOSS portal. The BDC closes the gap that used to exist between their portal and their business applications by allowing customers to access key data from business applications in MOSS. This data is surfaced to customers in web parts placed on a sites, as data in lists which they can view or link to, in search results, and as data attached to user profiles. Once an administrators registers business applications in the BDC the data in the application is immediately available to MOSS users.

Using the BDC to access corporate data

Making the connection is the first step toward exposing corporate data. But then the hard part begins, i.e. designing sites that expose the data. Anticipating this need, MOSS includes four out-of-the-box Business Data Web Parts: Business Data List, Business Data Items, Business Data Related List and Business Data Actions. Building on the BDC, the main function of these parts is display business data in a portal application without the need for any programming. Once an entity is registered in the BDC, the portal designer can use these Web Parts to display it. Moreover, the all of these web parts support the standard web part connection interface. Allowing connections between web parts enables scenarios like Master / Detail displays (customers and orders or invoices and line items) without any programming. The main purpose of each web part is:

  • Business Data List: This part allows you to display a list of any of the entities defined in the BDC catalog. You can use this part to display an up-to-date list of customers and use standard SharePoint views to arrange or filter the list
  • Business Data Items: With this part you can display all of the details for a specific item. You might use this part to display all of the details for a particular customer or product as part of developing a collaboration site about that item.
  • Business Data Related List: This part does all the "heavy lifting" to join two entities based on a common key. For example, show all the invoices for a particular customer. This part is especially interesting because it only cares that the two entities are related as in the BDC, not whether the entities are supplied by the same back end system.
  • Business Data Actions: This part allows the BDC architect to expose allowable actions on any of the BDC entities. You could this feature to allow internal users on your help desk portal to navigate directly to the source system or launch an InfoPath form that can update the address or other information about a customer in the back end system.

By combining the standard site design features of MOSS with these BDC web parts you can create rich, interactive interfaces that display corporate data.

The BDC is a key MOSS technology

But the BDC isn't limited to just displaying records out of the underlying systems. Because MOSS Search Services can crawl the BDC, you can create custom search experiences for your users. In addition the BDC allows you to integrate business data with MOSS User Profiles. This would allow you to tie data like birth date or address from your HR system directly to a MOSS User Profile attribute. These attributes are commonly used to allow content to be filtered for users of the portal.

The BDC is a key enabler for easy and rapid integration between MOSS and enterprise systems. It allows you to create a rich enterprise integration portal by leveraging an application or database connection and metadata model across standard MOSS features such as sites, lists, search, and user profiles. This is a key enabling technology which can help you drive significant integration revenues if you take the time to learn how to sell it, use it and deploy it.

 

Automating Application Development

Companies that specialize in developing custom solutions find themselves in a precarious position, navigating between their core development business which is increasingly being off-shored and the need to upgrade their developers' skills to take advantage of newer technologies that promise to help them maintain their margins. This is a treadmill that they're used to walking, but at some point they have to look at the business and say "there has to be a better way!" Many of them will find a vertical niche and become ISV's or at least package their software assets and development services in a way that lets them stay profitable. But what about the rest? In this post I'll examine how the future of software development is changing and its promise for helping development firms retire their treadmills.

The Developer Optimization Conundrum

As short sighted as it may sound, I've had company owners tell me that they're not that concerned about making their developers more efficient. Their argument? "We charge by the hour and the better we get the less money we make!" The real solution isn't a moratorium on developer education; it's a re-examination of the pricing model. In fact the only real way to consistently increase margins in the custom software development business is to negotiate fixed bid deals based on firm, agreed upon specifications. With this kind of contract, the partner can increase the hourly rate of the developer by delivering the solution in a fewer number of hours.

Optimizing Development

Recognizing the need to change the model, many development shops have already begun their developer optimization initiatives. These initiatives generally involve the introduction of toolkits and code generators into their process. Presentation toolkits for specific types of applications (Windows Forms controls, ASP.NET and AJAX controls, Mobile device controls) can dramatically decrease the amount of time developers spend hand coding the UI. Reporting generators can not only decrease the amount of time spent designing reports, but also may give customers additional functionality like the added ability to create their own reports or to schedule distribution in different formats. Code generators allow developers to rapidly generate business or data objects and the stored procedures they use from existing databases. Better tools can make developers more efficient, but there's only so much efficiency to be gained from tools alone.

Industrializing Development

What we're experiencing today in the software development community is not that different from what the craftsmen of the agrarian society in the late 1800's experienced as they were overwhelmed by the industrial revolution. Even with better tools and cheap (family) labor, the manufacturing jobs done by individuals were replaced with industrial technologies like the assembly line. In fact, many products that would have been impossible to produce by an individual (e.g. the automobile) replaced competitive products that were handmade (e.g. the buggy). What we call software development today will, over time, be replaced by software manufacturing. And manufacturing will ultimately require a facility – a software "factory."

Although it's a new term to most developers, the software factory concept has been around for several years. Industrial factories are designed around building a single commodity but are flexible enough to build variations of that commodity. For example, the factory might be designed to build cars but it can build 2-door or 4-door cars with different colors, features, etc. The concept of software factories is no different. A software factory is designed to build a particular type of application. As the application type becomes more specific, the factory can generate more artifacts automatically and less work is required of the developer composing the final application. A final application based on a well-defined software factory will also have published and well-defined interfaces allowing the developer or the customer to "trick out" the application. (I'm not sure what the analog to "spinning rims" is for software factories but I'm quite certain that someone will use the 3-D features in Vista to create them!)

The good news for Microsoft developers is that the Microsoft Architecture team is at the forefront of the Industrial Software Revolution. This includes not only articles and webcasts, but a suite of pre-built guidance packages that accelerate the development of specific types of applications. These include software factories for Web Services, Smart Clients, Mobile Clients, and Web Clients that build upon other core architecture assets like Enterprise Library and the Guidance Automation Toolkit. Development companies can dramatically enhance both their profitability and their relevance to their customers by using these resources to jump start their migration from a collection of skilled development "craftsmen" creating one application at a time to a group of "factory designers" that can create several applications for a given domain more efficiently.

Workflow Comes of Age

Customers need software that improves their business processes and leverages the investment they've already made in the Microsoft platform. And although Visual Studio, the .NET Framework and the Windows Platform provide a robust toolset with which we can develop these solutions, the nature of application development is that software tends to be a "one-off" solution that solves the business problem or improves the process at hand but is unable to adapt to significant changes in either. As an industry there's a move away from components tied together by a platform and toward services tied together by malleable processes. By separating applications into services and then orchestrating their interaction, we can create more robust – and less brittle – solutions that can morph into specific systems that solve these business needs.

But existing "orchestration engines" focus on the interaction between systems. That's the easy part! What makes the interaction both valuable and complex is the ability to orchestrate activities between humans and machines in any combination. These human processes can take days or weeks to complete and the underlying systems need a way to manage the ongoing context of the underlying process. And human processes typically need to be updated "on-the-fly" as business needs dictate while still being able to maintain the overall integrity of the business process. How is this possible?

A new way of thinking

At its core any business process is simply a predetermined set of activities, events and rules that all of the actors (humans or machines) can interpret and act upon. A "Workflow System" allows a developer to combine activities, events and rules with both human and system interaction and to create expandable and flexible business systems. These systems provide the infrastructure to make a decision about a process based on business rules. Furthermore, they provide ways to talk to other software and systems in order to push or pull information required by or for the running process. A robust workflow platform should be able to interact with people in rich ways including web forms, electronic mail, rich forms or cell phones using any software that can be touched by the platform. Finally, the workflow platform has to be able to maintain the state of a process during an extended period of time. The nature of workflow platforms requires that they be able to work asynchronously with people and systems while maintaining all of the essential process information from start to finish.

.NET Framework 3.0 – Workflow at the Core

Workflow software with these kinds of features has been around for a long time. Many software vendors have created their own workflow engines. In fact, many of these engines run on the Microsoft platform. But no one but Microsoft can workflow-enable all of the technologies required to create a platform – rather than a single application – that supports workflow at its core. With the announcement of Windows Workflow Services (WinWF) at PDC 2005, Microsoft has turned a niche software category into a foundational element of next generation software. As a core component of the .NET Framework 3.0, WinWF will be fundamental part of the Microsoft Windows Platform going forward (including not only Windows Vista and Longhorn Server, but also Microsoft Windows XP and Microsoft Windows Server 2003). With new presentation, communications and now workflow components, the .NET Framework 3.0 represents a dramatic new way to develop dynamic new software.

And Microsoft is eating its own dog food with respect to WinWF. At the PDC, Microsoft announced that several future products will be built on WinWF platform. ASP.NET 2.0 will serve as a WinWF host, allowing developers to create compelling web applications tthat participate in workflows. Windows Sharepoint Services 3.0 and Office 2007 will take advantage of the WinWF platform to deliver several human workflow solutions out of the box. For the first time, companies can deploy rich workflow solutions like expense report management that include robust process management capabilities built into the platform rather than coded into components that are difficult to modify and extend. The next release of BizTalk (after Biztalk Server 2006) will use WinWF as a replacement for its system orchestration engine. Perhaps most importantly, new versions of accounting products in the Dynamics line (formerly known as "Project Green" and including Great Plains, Solomon, Axapta and Navision) will include extensive support for workflows and business process customization based on WinWF. Customers implementing Microsoft solutions will have more flexibility in composing applications from these (and other) systems because the workflow support (process definition, state management, etc.) is built into the platform rather than bolted on to the software (as is the case with products like SAP, Siebel, Oracle Financials or any other product designed to be platform agnostic.)

Start Learning Now

As with all of the the .NET Framework 3.0 technologies, the time to begin learning about WinWF is now. Implementing effective workflow solutions requires not only an understanding of the underlying technology but a keen appreciation for workflow architecture vis a vis classic application software. At a platform level, this change in thinking will be as dramatic as the development shift from procedural to event-driven languages. And with future Microsoft platforms being workflow enabled at the core, architects and developers who start working with the technologies now will be ready to embrace and deliver them to customers who are sorely in need of their capabilities.

 

Driving Vista Adoption

Five years after the launch of Windows XP, Microsoft has finally unleashed Windows Vista. And, as with previous operating system releases, Microsoft's biggest competitor is . . . Microsoft! Having been involved with every major Microsoft operating system launch since the original Windows/386 release, I have some perspective on how companies view Vista with respect to prior releases. I've also had numerous opportunities through launch events and briefings to speak with company owners, IT executives, developers and network engineers about their impressions of and intentions to adopt one of the Vista versions. In this post I'm going to take a brief historical look at how and why companies adopted prior Windows releases to gain some perspective on the best way for Microsoft advocates to position Vista.

Platform pairs

History suggests that Microsoft generally releases two major versions of an operating system designed to fully exploit a particular level of hardware and the state of the art in software engineering at that point in time. The first pair of releases – Windows/386 and Windows 3.0 – brought the Graphical User Interface and Multitasking to the masses but relied on DOS to deliver most of the key underlying services. Windows programming was transformed from a black art (C programming using the SDK) into a development platform for the masses (Visual Basic). When developers began to master the Windows platform and hardware manufacturers provided more robust systems and devices, Windows 95 and Windows 98 ushered in the "protected mode" era and shed most of their DOS underpinnings. Windows 2000/2003 and Windows XP added the Internet foundation and corporate stability required to make them the platform of choice for the Windows Enterprise. The addition of the .NET Framework 2.0 to Windows XP and Windows 2003 has provided developers a robust canvas on which to develop rich Web and Windows applications. (Yes, I'm ignoring Windows ME – affectionately referred to as Windows Mistake Edition – because most companies either ignored it or wished they did.)

Vista is different

Windows Vista represents the first release of a new Platform Pair, if the pattern continues. But there are some marked differences in the positioning of Vista. First of all, Vista enters the market in a period of relative calm from a corporate perspective. Most enterprise network administrators and IT executives to whom I speak report that they're very satisfied with their organizations' ability to deploy, maintain and support a corporate environment with Windows XP SP2 on the client and Windows 2003 on the server. Their developers have been moving toward major software releases on the .NET Framework 2.0 using Visual Studio 2005 as their development tool of choice. Second, as corporations look at the benefits of deploying and supporting the .NET Framework 3.0, Microsoft has done the right thing by allowing it to work on the existing Windows XP / Windows 2003 corporate platform. Enterprises will be able to take advantage of Workflow Foundation, Windows Communications Foundation and Windows Presentation Foundation on their existing Windows platform. Although this eases the transition to the .NET Framework 3.0 it removes some of the incentive to use Vista as the deployment mechanism. Finally, although Windows XP pioneered the notion of different "editions" (Home, Premium and Media Center), Windows Vista embraces it. It will take some time before companies – and partners – figure out which edition makes the most sense for them.

Encouraging Vista adoption needs to be a two-pronged approach. First, identify which market segments are in most need of the features that Vista offers and get early wins there. Second, provide information and support to allow the other customers to position themselves for successful adoption down the road.

Pick your battles

Although many enterprises are satisfied with their current XP-based platform, there are companies who have not yet moved to the XP/2003 platform. For these companies, it makes sense to look at moving directly to Vista. Even for enterprises who have significant investments in the XP/2003 platform, there are compelling reasons to consider Vista Enterprise Edition. Its Windows BitLocker™ Drive Encryption technology provides hardware based encryption technology to protect sensitive corporate data. This builds on the new data protection capabilities in Vista Business edition which include both hardened network stacks and User Account Control which limits the ability for users or malicious applications to interfere with the Vista configuration. Vista Enterprise Edition also includes technology AND licensing support to allow customers to run up to 4 additional operating system instances on the same machine. This will allow a single Vista Enterprise machine to run any prior Windows version and applications that only run on that release.

Because of their mass, moving any enterprise to Vista is a long term investment. But many small to medium businesses are prime candidates for Vista adoption. They will realize immediate benefits in the increased protection afforded by Vista Business edition. And they are also more likely to benefit from the usability and mobility enhancements in Vista. When combined with Office 2007 and Exchange 2007, the Vista platform can provide significant new capabilities for businesses of all sizes but the adoption rate and the benefits of adoption will be more easily recognized and acted upon by companies with <500 workstations.

Positioning is key 

The primary goal for driving Vista adoption long term is to encourage adoption and implementation of the .NET Framework 3.0. There is NO downside to helping companies adopt the .NET Framework 3.0. They get significant new capabilities on their current platform (XP/2003) and are positioned to take advantage of the BEST platform to highlight its capabilities (Vista). Given the common 3-year refresh cycle that most enterprises use to update their client hardware platforms, it's imperative that partners work now to help customers realize the benefit of putting the .NET Framework 3.0 into the standard build that's going on this year's refreshed machines. It's also critical that you help customer understand the importance of deploying machines that will be able to take advantage of Vista's unique capabilities. These include graphics cards with at least 128MB of graphics memory and DirectX Shader support in order to take advantage of the new Vista graphics subsystem (Aero). Core Vista capabilities are greatly enhanced by better processors (dual core. 64-bit capable) and more memory (1GB minimum and 2GB preferred). Putting out the right foundation now will ease a company's adoption fears down the road.

Picking battles and positioning the .NET Framework should be the battle cry for people wanting to drive Vista adoption. Major operating systems releases always drive significant revenue opportunities for partners. We should all be looking for ways to help our customers adopt technology that helps their business – and ours!

Building Office Business Applications

Now that the 2007 Office System is in the hands of corporate America, developers can begin turning their attention to how they can help corporate customers leverage the new capabilities of the platform. The biggest issue most ofus will face is choosing which of the myriad new technologies they should embrace first. But rather than look at the challenge from a technology standpoint, I believe you should consider how you can use the platform to build a the next generation of Office Business Applications. In this post I'll examine some of the major areas on which you should focus when considering how you will use the new Office System to build business applications.

What is an "Office Business Application?"

Knowledge workers have access to a set of Line of Business (LOB) systems that allow them to get enter the information required by the business. But it's the combination of the data from these LOB systems and their personal applications, processes and practices that actually let them get their work done. Office Business Applications (OBA) allow users to take these personal applications, processes and practices and encapsulate them in an agile application based on a collaborative platform – Office. The combination of Office client applications (Word, Excel, PowerPoint, InfoPath, OneNote, Project and Groove) and collaborative servers (Office SharePoint Server 2007, Groove Server 2007, Project Server 2007, SQL Server 2005) provide a robust platform on which to build these new OBAs.

Where do I start?

It will take months for developers to learn all of the new capabilities of the platform, so let's take a look at my top 5 areas where you can start building now and reap immediate rewards:

  1. Workflow – By choosing to use Windows Workflow Foundation as the foundation for the workflow capabilities of Windows SharePoint Services 3.0, Microsoft has given partners a great opportunity to help customers build OBAs. Not only are there out of the box workflows for common approval or issue tracking applications but partners can also use SharePoint Designer to build moderately complex applications with no code. For complex, enterprise workflow applications they have the power of Visual Studio and its integration with SharePoint and Windows Workflow Foundation to create robust, resilient OBAs. If you're only going to have time to focus on one area of the new 2007 Office System then it should be workflow.
  2. Business Data Catalog – Building OBAs will require access to corporate data and helping companies devise a strategy to expose their LOB data to OBAs will be big business. Partners can use the Business Data Catalog (BDC) to help their customers expose enterprise data which can be consumed by SharePoint Web Parts, InfoPath Forms and other server applications. OBAs can expose the LOB data in a simple interface and then use that data as part of another workflow or business process.
  3. Enterprise Content Management – By incorporating the capabilities of Microsoft Content Management Server 2002 (MCMS) into Microsoft Office SharePoint Server 2007, Microsoft has created a comprehensive content management platform that includes web content management, document management and records management. When combined with the ability to manage the flow of documents and content with workflow and the ability to apply metadata automatically using the BDC, partners have a great opportunity to build content-focused OBAs.
  4. Search – Effective use of content implies that I can not only create it but I can also organize it, find it and retrieve it. Enterprise Search in Office SharePoint Server provides a stet of extensible content gathering, indexing and querying services that support full-text and keyword searches. Searching can take place across not only content in SharePoint Server but BDC sources, SQL Server databases, Exchange folders and even external web sites. Partners can build rich search-based OBAs that give users an easy way to get the information they need.
  5. Business Intelligence – I've been involved in several enterprise Data Warehouse projects and the number one problem that plagues these initiatives is the time it takes to get to a meaningful result. This is caused by a combination of complex tools and a time-consuming process of extracting, cleansing, staging, preparing and exposing corporate data to consumers. Although it's not a panacea, the combination of data exposed through the portal and the BDC and the ability for users to create simple dashboards from these sources without writing code will drive more Business Intelligence adoption in the next three years than has happened over the last ten. By including Key Performance Indicators (KPIs) as a core content type within Office SharePoint Server, users can create dashboards using these KPIs defined from Excel Services, SharePoint Lists, Analysis Server cubes and several other sources. And the integration with SharePoint allows the new dashboard to take advantage of other services like Search and Workflow to create rich user experiences.

This is by no means an exhaustive list of the opportunities on the 2007 Office System Platform. But by focusing on one or more of these areas, you can begin reaping the rewards of building OBAs immediately while taking time for deeper exploration – and exploitation – of these technologies.

 

Welcome!

Thanks for visiting my blog.  I hope you enjoy reading the technical material, observations, predictions and opinions that I leave for you here.  You can post a comment on any blog item and if you request a response, I'll do my best to honor the request. 

Tim

 Where you can find me . . .

Microsoft ArcReady Tour
Fri, 16 Feb 2007 20:41:25 GMT - View Article

 Find Out More

 Blogs I Read

  Bryan Phillips
  Intellectual Hedonism
  Computer Zen
  SharePoint Team Blog

 ‭(Hidden)‬ Admin Links