Microsoft Cloud Authors: Lori MacVittie, Elizabeth White, Yeshim Deniz, Serafima Al, Janakiram MSV

Related Topics: Microsoft Cloud

Microsoft Cloud: Article

Exclusive .NETDJ Interview with Brad Abrams: Talking Frameworks, Namespaces, and Programming

"We Do Believe That Introduction of the .NET Framework Was an Inflection Point That Only Comes Once in a Blue Moon"

.NET Developer's Journal editor-in-chief Derek Ferguson (.NETDJ) and Don Box (DON), a leading authority on COM and architect in the Microsoft .NET Developer and Platform Evangelism Group, recently sat down to talk with Brad Abrams (BRAD), Lead Program Manager for the .NET Framework, about that framework.

.NETDJ: What namespace are you the proudest of in the .NET Framework?

BRAD: That's tough because there's this tendency when you work at Microsoft to find faults in whatever you're working on. Since I work on the namespaces, I have no problem finding faults!

I really like the System root namespace, though. There is a lot of common functionality that we have been able to canonize, but there is a lot of good additional stuff there, as well.

DON: Of which namespace are you most ashamed?

BRAD: I am actually very proud of where we ended up with the .NET Framework as a whole. But of course there are always areas that could be be better. For example, there is System.Runtime with InteropServices and Remoting. That namespace was designed by people who really understood COM and Win32 and when you go in there it kind of feels like that. We let some of the design guidelines be more liberally interpreted for that namespace.

DON: The namespace that gives me must joy is Interop, actually... because of what it enables, as well as the way it is delivered. If you know you have unmanaged code, it is pretty darn expressive. There are very few things I've wanted to do that I couldn't do with C#. I just think if I have to do something, contrast this with JNI, which is this giant mess of goo that Java uses for native interoperability.

BRAD: I agree! The functionality is awesome, but it sits in a morass.

DON: We can't ignore the past. When we did the CLR, we knew we couldn't just say that unmanaged code is silly and no longer supported. We will always have to maintain continuity with the past. I wouldn't trade it.

BRAD: The aesthetics aren't as good as they could be. I come from the Win32 and COM mindset, so it works for me. However, people from other backgrounds may not grasp it as easily.

DON: Well, there's all that stuff under Windows Forms that I don't understand - buttons and text fields, for example - I don't know what they're about.

.NETDJ: How would you compare and contrast the .NET Framework to the J2EE class libraries? For example, is the similarity in System.Collections and System.IO coincidental, or is there a common ancestor of which I am unaware?

BRAD: There is a long history of runtime environments - LISP, Smalltalk (for the base library), and Java all share a lot of common functionality. Visual Basic has some elements of this, also.

I think that what you see is that there is a history of Base Class Libraries (BCL) and we tried to learn from all the history that was out there - what developers liked and disliked.

.NETDJ: Tell us a bit about your career leading up to becoming lead program manager for the .NET Framework team.

BRAD: I started at Microsoft seven years ago. Before that I did some interning when I was in college, including some with Nortel where we built their automated 411 system on a very early version of NT 4. I really enjoyed writing NT code, so I sent my resume to Microsoft and - oddly enough - they called me for an interview.

I had one of the best interview experiences! I started at 9 a.m. and had grueling interviews until 8 p.m. I don't know what happened, but I suspect that everyone I spoke with thought I had something, but that I wasn't quite right for their group. So they kept sending me on to other interviews. Luckily I eventually found someone that would take a chance and hire me! It was so late after my last interview that the shuttles were not running. It was dark, raining and I had no idea what building I was in. Thankfully, a nice Microsoft employee had sympathy for me and took me back to my car.

I did two summer internships, one with Expedia and one with Visual Basic 6, where we were adding control creation capabilities to Visual Basic. When I first joined Microsoft full time, I went to the Internet Explorer team and we shipped versions 4 and 4.1 at the end of the browser wars. I was the release program manager and got to go to all of the release meetings and to argue about all the decisions.

At the end, they were forming up a team to do a new language runtime and I had no idea what it was, but I signed up and it has worked out very well. I remember having hours of arguments about whether to do reference counting or garbage collection. I did the BCL, which evolved into a full Framework team right before the 2000 PDC. I moved back to the CLR team after we shipped version 1.0 of .NET, and I am still on the CLR team today, working mostly on WinFX - the next developer API.

.NETDJ: I know that you were involved with the drafting of the original Framework Design Guidelines for .NET, and the creation of FxCop to help enforce the guidelines. I hear that this kind of functionality is now one of the "preferences" that will ship with the new Team products for Visual Studio 2005. Are you involved with this?

BRAD: At the very beginning of the Framework, it was really obvious to us that we needed a set of design guidelines. The first argument we had was about casing - some folks wanted all uppercase and some people wanted VB-style. One of the program managers said that there was no way to enforce those, so we whipped out FxCop in a single weekend, just to prove him wrong! Some of the best tools in history are born out of necessity.

Since then, we update the FxCop document every week with new guidelines and new errors that are possible in new versions of the runtime. FxCop is a super-important tool for framework consistency. I'm very excited by the fact that we are going to start packaging this into the IDE with Visual Studio 2005, because our customers have very similar consistency issues.

.NETDJ: Well, the idea of arguments about design certainly piques my interest. Who was arguing for what?

BRAD: Anders [Hejlsberg] argued the Pascal standpoint about casing. The Visual Basic people favored uppercase for constants and such. Win32 and MFC both had strong casing heritages which their folks also advocated. Visual Basic, Win32, and MFC all had more users than Pascal on the Windows platform, so it certainly wasn't Anders bringing down tablets from on high -- we had some healthy debates.

It is interesting that we spent so much time debating it and the only complaints I hear from customers are where we don't follow our own guidelines. It's similar to the argument about where to place the curly brace.

I tried to bow out of the implementation arguments - since developers don't see our source code. It is hard enough to win the arguments that actually affect the adoption of our platform.

DON: So, back in the '90s the stock market grew and grew and people at some point thought the Dow would never stop - but it did. If I look at the number of classes that we ship, how should I think about the right number of classes?

BRAD: Well, I think what you are seeing right now is that with version 1 and version 1.1 we've hit a few core scenarios: Web pages and line of business, for example. We have the right set of classes for that.

If you look at Whidbey, we are doing all of this and more and it requires another set of classes. When we approach Longhorn, we are saying that we want all client applications to be written in managed code. This will require more functionality to be exposed and, therefore, even more classes.

DON: We have annual reviews at Microsoft. What would you think if we had engineering staff judged inversely based on how many classes they introduce?

BRAD: As we are doing Longhorn, I'm pretty involved in pulling it together. The problem is that with any metric, as soon as people know it, the smart people we hire would do everything in a single class and defeat the metric. I think what I have been talking about is simplicity: we need to get every person who checks in new APIs to think about simplicity. It is a hard battle. If you are the guy who is shipping the print queue, you want the absolute richest print queue API possible. Sometimes our folks don't see the sacrifice.

.NETDJ: Given that most developers still only use a single language for the vast majority of their work, do you think that maybe cross-language inheritance and its benefits are just not all that important?

BRAD: I think that it is a bigger benefit than people realize. Anybody building anything in VB.NET benefits from this on a daily basis, for example - since the Framework is largely written in C#. So, although it isn't a benefit that is right in our customers' faces, it is happening all the time. All of our component vendors can create components in whatever language they like and it will work for all of their customers - regardless of what language their customers may choose!

The other thing I think is really interesting is that I think it is fair to say that there were a number of people in the industry who were caught by surprise by how popular Java became so quickly. But what is the next language? Being a platform guy, I'm not nearly as interested in what the next language will be as I am interested in guaranteeing that - whatever the next language is - it will be able to work on our platform.

With Common Language Specification I don't even need to know because whatever it is will almost certainly target the CLS. Whether it is Ruby or Python or something invented by someone staying up late at Tech Ed - it will work great on the CLR.

.NETDJ: How did you determine the subset of .NET's functionality that got standardized, as opposed to being strictly for the commercial CLR?

BRAD: We always wanted to standardize the core runtime. As Don mentioned, it is huge and always growing. Of all the things we wanted to standardize, the programming languages were arguably the most important.

We had seen C++ and Smalltalk standardize their libraries, so we really wanted to provide a similar set of libraries that would work well - runtime-type libraries for 2000. We looked at what had been standardized with C and C++ and we said, if we had to do this again, it would have all of this stuff plus what? Network connectivity, XML, dynamic type inspection and invocation - all of these things are really important today, but weren't in the C and C++ standard libraries.

We wanted to standardize the bits that weren't platform or application specific, just the language runtime. We also just had to scope the amount of work the committee had to do. This wasn't necessarily for us, but the committee members had to review all of this material in detail, so there were some practical pressures.

.NETDJ: How did you come to work with Damien and Mark on the book Programming in the .NET Environment?

BRAD: I met both Damien and Mark through a Microsoft-funded initiative called Project 7. For Project 7, we went out to the community very early with the CLR. We were super-hushed about it, but we knew that we wanted to get a bunch of programming languages on board as early as possible. We talked to a lot of people in the programming languages community and I knew Damien and Mark through the whole development process. They were both good contributors in terms of saying what would be best for various languages. Damien was really the brain child of the book and he had a vision for what he wanted to do. I agreed to write a chapter and of course that turned into a couple of months. The book turned out to be a good high-level overview.

.NETDJ: I love the book, but I almost never read it because its place in the spectrum of .NET books wasn't immediately obvious to me. Can you explain that a little?

BRAD: We really hope the book provides - and we were thinking primarily about the academic market here - we wanted to provide an introduction to the .NET platform such that people who weren't necessarily from the Microsoft school of thought - people from CORBA or Java or whatever - would be able to understand the rational behind how we built our platform. The book is an experienced programmer's guide, really. Typically at Microsoft we think of all our developer education as building upon a history of working with our tools, and if you read our docs that's almost always where we think people are coming from. This usually turns out to be true, but in this book we wanted to take a different tack.

DON: When I look at the three primary pillars of Longhorn, I want to be able to sit down with you and be able to explain any one of them in five minutes or less. I think Indigo is there. If I look at WinFS, we are starting to get there. Avalon is huge and hard to understand all of it in five minutes. The thing that has me puzzled is that not everything is in these three buckets, what about the rest?

BRAD: Those three are roughly 80% - if you take out the existing Framework. I'm worried about some of the remaining 20%. But the 80% in WinFS, Indigo, and Avalon are - in terms of what developers are going to have to interact with - the types that people are going to use disproportionately.

.NETDJ: Designing an entire class library seems like an overwhelming task - how did you even get started with that? What class came first?

BRAD: System.Object came first. The truth is, no one person designed the entire .NET Framework - just like no one person will design WinFX. I view my role as producing a small set of classes that are good examples. We tried to make the BCL a good example and now we prepare training around that and evangelize to people like Don here how we think a good, consistent API will be built.

It is very much an iterative process. It is really not the case that we can sit down in a room with lots of super-smart people like Don [Box] and Anders [Hjelsberg] and design something. We get feedback from users, documenters, etc., and it takes the whole village to be able to do the design. I'm sure developers getting the tech previews of Whidbey will appreciate that there will be some more churn.

.NETDJ: What are your thoughts on the nondependent relationship between namespaces, directory structures, and assembly names?

BRAD: We really wanted to be very clear and unambiguous on what the packaging and deployment unit was - the Assembly. Namespaces are just something the compiler sticks in - without knowing anything about them. I think that most of the time, for the Framework, the basic assemblies are imported by default so that developers don't need to look at the assembly names.

I advise third parties that, as they develop, they should have some correspondence between their namespaces and their assembly names. I think in the end the performance overhead of having too many assemblies outweighs the potential benefits of having a strict one-to-one correspondence between namespaces and assembly names.

.NETDJ: What is your opinion on SSCLI, Mono, Portable .NET, etc.?

BRAD: I think it is a great validation of our technology that they are out there. To the extent that it is another vendor that is implementing the stuff that we have standardized, I think it is great. I think we have customers who get peace of mind from knowing that there are other core implementations available.

.NETDJ: Do you think it could ever prove problematic?

BRAD: I don't comment on potential legal issues. These implementations are neither licensed nor supported by Microsoft. I think that there is obviously some part of the framework that we didn't standardize and that isn't available through that, but I think that is an issue that those companies have to deal with. It certainly isn't something that I worry about on a day-to-day basis.

DON: We never talk about programming languages. I had dinner with Paul Vick last night, and I was telling him I thought it would be great if the number of language features in Orcas was less than in the version he is shipping now. Don't you think people would love a small language?

BRAD: I've been talking to a lot of customers and I am officially language-agnostic. It has been interesting to hear people talk about the conversions they have made over the last year or so. One customer moved from VB to C# - he said it was because C# is simpler. I do think that there is this concept of "addition through subtraction" - we can actually make things more powerful by taking away features. It is easy to preach, but hard to implement.

DON: I really wish more people at Microsoft worked in LISP or Smalltalk - they are minimal but powerful. And that's what makes them so amazing.

BRAD: I think one of the most important features in language design is the "obsolete" attribute. You can communicate instantly to any developer using an outdated feature that there is now a better way. We love our existing customers, but if you are writing new applications we want you to move on to places where we can support you better.

DON: I've talked a lot with other developers at Microsoft about obsolescing more stuff. People will invariably say "You mean add the OBSOLETE attribute," with a great deal of fear and trepidation in their voices. Do we need Bill's approval to get more aggressive about this, or what?

BRAD: We actually want to reward people for this. Sometimes people want to obsolete things for which there is no alternative - and that isn't good. But otherwise, we want the number of classes to go down and the number of obsoletes to go up.

DON: I'm on board with that plan! Don't obsolete Remoting before Indigo ships, though!

.NETDJ: How did you decide to change the data API yet again with ADO.NET? Wasn't that a gamble, considering how many data access API's have gone before?

BRAD: To be honest with you, I wasn't that involved in it. We do believe that introduction of the .NET Framework was an inflection point that only comes once in a blue moon. So this was probably the best time to introduce it. In terms of the exact tradeoffs, I'm not the right guy.

.NETDJ: Tell us a little bit about the work that went into creating the System.Runtime.InteropServices namespace, which is massive!

BRAD: I would love it if developers didn't need to do Interop. Unfortunately, there will always be developers who have code that was written 20 years ago and is unmanaged, and they need to keep working with it.

Most of the time, when people have to pInvoke or do COM Interop, it is to interoperate with existing Microsoft technologies like Word or Outlook. One of the primary drivers for WinFX is to drive this number way down, by writing more of our own stuff in managed code.

Adam Nathan from our team recently decided to start a Wiki (www.pinvoke.net) with all the pInvoke signatures for the common Win32 APIs. Then he added this mapping information that will tell you about the managed equivalent for whatever native API you are trying to invoke. I certainly hope that developers will use the managed versions where available!

.NETDJ: How are you working on WinFX? How do you coordinate the three teams WinFS, Avalon, and Indigo?

BRAD: My role with WinFX is almost like Geneva - I do "the Switzerland thing." We have all these teams and they all have super-smart guys working on their teams and doing API design. However, they all necessarily look at the world through their own colored glasses. That's what we need them to do to build the greatest versions of their products.

However, there are very few Indigo-only, Avalon-only, or WinFS-only applications. So I lead a broad team that looks at the big picture and, as a classic Microsoft Program Manager, I have to work on building consensus and getting guys like Don Box here into a room to argue about what their products are and what they should do within the context of WinFX as a whole.

DON: What programming language do you use?

BRAD: I usually write IL directly. No, seriously, I use C# most of the time. I grew up with the semicolon language feature and it feels most natural to me.

.NETDJ: What namespace do you think is most overlooked and neglected in the Framework?

BRAD: System.Collections.Specialized has a few classes in there that we needed for the Framework. It had nothing to do with externals, but folks on the ASP.NET team needed some of this stuff. We came up with some real jewels - there are some real good ones in there. Because it has a bit of an obtuse namespace, most people have never touched it. If you are building object models on version 1.1 today, though, you should definitely look there.

.NETDJ: I have a personal dislike for the System.Management and System.DirectoryServices namespaces - they seem to be just a little too native. Can we look forward to a gradual "managization" of these namespaces going forward?

BRAD: Some people say that System.Management is difficult to use because it is loosely typed, but I just heard a guy yesterday saying that he loves it because it can do anything he wants to do and he is able to get it done because it exposes a flexible model. It is difficult to reach a balance that will please everyone.

DON: Talk to me about performance. I am a programmer who hypothetically is skeptical about managed code. At what point does it become obvious that I have to write managed code? For example, there are usually two primary concerns in moving to managed code. One is the skills (people don't know it). The other is always concern about performance. The skills one is never going to go away, but at what point does the performance flip to being a problem if you don't change to managed code?

BRAD: The general answer is that you should pick the natural product point in your development cycle. If you have a Visual Basic 6 application and you're happy with it, then don't rewrite it just for the hell of it. The interesting thing about performance is that we have been actively soliciting performance stories from attendees and almost universally the answer is that no one has had any performance problems. Most people are coming to ASP.NET from "classic" ASP, so that is an easy performance battle to win! On client applications, they usually say that they haven't noticed any issues. Then we say, "Some people have asked us about startup times" - that generally gets a response where people roll their eyes and acknowledge that they have noticed it. That is an annoyance for some people, but it is the number one issue we are spending the most development time to correct at this point. So you asked, "When do you think it will come to a point where developers will get better performance using managed code?" It is all about the functionality you expose. For example, it will always be faster to write an Indigo application in managed code than its native layers, because we will expose that functionality in managed code.

DON: I think Longhorn is the tipping point, then. The three main pillars are in managed code - so accessing them via COM will require Interop, and its associated performance hit!

BRAD: We totally want people to be able to take a slow migration, though. We have a lot of internal customers that are still 100% native Win32!

DON: Office is one of those customers, of course.

BRAD: Yes, of course, we are not going to "deltree" Office.

DON: What is deltree!?

BRAD: It is an old DOS command.

DON: Oh, I was thinking that "rm -r" was able to do that.

More Stories By Derek Ferguson

Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

@ThingsExpo Stories
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
The Founder of NostaLab and a member of the Google Health Advisory Board, John is a unique combination of strategic thinker, marketer and entrepreneur. His career was built on the "science of advertising" combining strategy, creativity and marketing for industry-leading results. Combined with his ability to communicate complicated scientific concepts in a way that consumers and scientists alike can appreciate, John is a sought-after speaker for conferences on the forefront of healthcare science,...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, discussed the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Archi...
The current age of digital transformation means that IT organizations must adapt their toolset to cover all digital experiences, beyond just the end users’. Today’s businesses can no longer focus solely on the digital interactions they manage with employees or customers; they must now contend with non-traditional factors. Whether it's the power of brand to make or break a company, the need to monitor across all locations 24/7, or the ability to proactively resolve issues, companies must adapt to...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settl...
Organizations planning enterprise data center consolidation and modernization projects are faced with a challenging, costly reality. Requirements to deploy modern, cloud-native applications simultaneously with traditional client/server applications are almost impossible to achieve with hardware-centric enterprise infrastructure. Compute and network infrastructure are fast moving down a software-defined path, but storage has been a laggard. Until now.
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
DXWorldEXPO LLC announced today that the upcoming DXWorldEXPO | CloudEXPO New York event will feature 10 companies from Poland to participate at the "Poland Digital Transformation Pavilion" on November 12-13, 2018.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
The best way to leverage your CloudEXPO | DXWorldEXPO presence as a sponsor and exhibitor is to plan your news announcements around our events. The press covering CloudEXPO | DXWorldEXPO will have access to these releases and will amplify your news announcements. More than two dozen Cloud companies either set deals at our shows or have announced their mergers and acquisitions at CloudEXPO. Product announcements during our show provide your company with the most reach through our targeted audienc...
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...
DXWorldEXPO LLC announced today that All in Mobile, a mobile app development company from Poland, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. All In Mobile is a mobile app development company from Poland. Since 2014, they maintain passion for developing mobile applications for enterprises and startups worldwide.
@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22nd international CloudEXPO | first international DXWorldEXPO and will feature technical sessions from a rock star conference faculty and the leading industry players in the world.
"Akvelon is a software development company and we also provide consultancy services to folks who are looking to scale or accelerate their engineering roadmaps," explained Jeremiah Mothersell, Marketing Manager at Akvelon, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
As data explodes in quantity, importance and from new sources, the need for managing and protecting data residing across physical, virtual, and cloud environments grow with it. Managing data includes protecting it, indexing and classifying it for true, long-term management, compliance and E-Discovery. Commvault can ensure this with a single pane of glass solution – whether in a private cloud, a Service Provider delivered public cloud or a hybrid cloud environment – across the heterogeneous enter...
DXWorldEXPO LLC announced today that ICC-USA, a computer systems integrator and server manufacturing company focused on developing products and product appliances, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. DXWordEXPO New York 2018, colocated with CloudEXPO New York 2018 will be held November 11-13, 2018, in New York City. ICC is a computer systems integrator and server manufacturing company focused on developing products and product appliances to meet a wide range of ...
More and more brands have jumped on the IoT bandwagon. We have an excess of wearables – activity trackers, smartwatches, smart glasses and sneakers, and more that track seemingly endless datapoints. However, most consumers have no idea what “IoT” means. Creating more wearables that track data shouldn't be the aim of brands; delivering meaningful, tangible relevance to their users should be. We're in a period in which the IoT pendulum is still swinging. Initially, it swung toward "smart for smart...
Headquartered in Plainsboro, NJ, Synametrics Technologies has provided IT professionals and computer systems developers since 1997. Based on the success of their initial product offerings (WinSQL and DeltaCopy), the company continues to create and hone innovative products that help its customers get more from their computer applications, databases and infrastructure. To date, over one million users around the world have chosen Synametrics solutions to help power their accelerated business or per...
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.