First and foremost this article is a feedback from the field of a very particular case of SharePoint development. Telerik products and components are very good and accelerate your developments (SharePoint or not) providing you advanced and customizable controls.
Some of you already know it, I work in a team that develops products for SharePoint (www.oceanik.com and the others one do not have yet dedicated sites, we still have work on the marketing).
Developing products is quite different from the development of specific solutions (to address the need for a particular client in a particular context). Indeed your product will be deployed in a multitude of complex and different environments and be used for the same initial need but in varied ways.
In this context we used telerik components in our SharePoint products. After several months without problems some of our clients said that since the installation of our products some of our features did not operate correctly or even that other developments were all not working anymore.
The problem? They already had a version of telerik deployed, either via the telerik for SharePoint components (which embeds the telerik for asp.net components that we use) or because other products/custom developments. We had a conflict with versions of telerik.
The solution? Redirection of assemblies you would say. Yes but when using this kind of technique we must specify which request version is mapped to which version of the component. If it is something on which we can support the client, it is difficult to industrialize the process, as impossible to know in advance which version will have client. Another detail, the themes available have changed as much as versions, which also crashed our features.
More generally, the development of 'full-trust' solutions unfortunately does not isolate the context of execution, this is also what led to the new apps model for SharePoint. My advice for all your SharePoint full trusts development: reduce to the minimum possible (cost constraints) your dependencies to third-party components.
Obviously all these problems do not arise with apps, so here is my last tip: only make full trust solutions if you absolutely need to.
Through my career I had the chance to be involved in several startups or small businesses trying to create a product or digital service. However a question arises very quickly:
How to have effective working tools while minimizing the financial impact?
And by impact financial I also mean the time spent to implement, because it is time that it not spent on its core business, or more generally to create added value.
What tools are needed in a startup? It is quite simple, the same ones as in large company:
- an office suite
- an email system
- telephony and if possible to instant and unified messaging
- a collaboration space
- a source code control system
- a software factory (Organization, tests, deployments,...)
The big problem is that you cannot really use public services (try to find clients by sending emails from gmail or hotmail,…) and implementing and maintaining all these systems represents a huge cost for a startup.
A trio that will meet most of your needs without you ruining or losing hours implementing: Office 365 + Azure + Visual Studio online.
- The suite Microsoft Office
- SharePoint online : all that you need to collaborate internally and externally around your documents
- Exchange online : a true enterprise messaging system
- Lync online, instant messaging, conference calling, and even telephony completely integrated (for telephony need to add some configuration steps)
- Visual Studio: more than complete development environment
- Source code control system
- Work planning (agile, CMMI,...)
- Testing factory
- Lot of applicative bricks, infrastructure etc.
- Integration with office 365
- Integration with Visual Studio Online
It is Monday morning, the CEO and marketing manager (we all love to give ourselves important titles in a startup) join the sprint planning meeting. They sold a new feature to a large customer. They already spent Sunday afternoon to write users stories (outline of the features) and to prioritize them in TFS (visual studio online).
As CTO and with my team of developers I divide everything into tasks using demonstrations material made for the client located on SharePoint online to get more details. We are ready to code. Oh I almost forgot, as a startup, we are not often at the office, all the meeting was done with Lync online using video - conferencing.
During the week we develop in visual studio, one developer is dedicated to unit and automated tests. While I code a feature, he will develop tests that will check the functioning of it. This will ensure that no bug is introduced subsequently to another modification without us noticing.
Obviously whenever we check-in something, it is linked to the related task and we update its state. Our CEO impatient to have its functionality operational can monitor progress without having to disturb us when we code.
Every night I have a test plan that runs, it compiles the day's work, deploys in a machine on azure, runs the tests, and saves the results. In addition I have a QA vm on which is deployed the latest stable version every week. The CEO can use it for demonstrations and manual testing and I don’t have to maintain or update this machine.
A bug despite all this? No problem, we add it and document it in TFS, I assign it to one of my developers, it is fixed and released.
Of course the production infrastructure is on azure too. If it is a simple web site/service, I use the hot swapping feature. It swaps QA version with the production one. In every case I maximize the automation of the deployment process, if necessary by using scripts. It avoids errors and it saves time.
At the end of the sprint the new feature is released and our startup has been able to focus on what is important: develop its market and its core business. Of course this is just one case scenario among others and I also during the week sent a few emails and made a few contacts/appointment using exchange online. We did that minimizing surrounding noise that makes me and my colleagues inefficient at work.
OK ok, nothing easier. You’ll first need to buy a domain name. I recommend one of the major providers such as gandi or godaddy as office 365 will be able to automatically configure them for you. (note that you do not necessarily need the domain but I recommend it to forge your identity)
Second step order an office 365 plan http://Office.Microsoft.com/fr-FR/business/comparer-toutes-les-offres-Office-365-pour-les-professionnels-FX104051403.aspx
If you do not know which one to choose, the second from the left for a startup will be more than enough, it provides the MS Office for PC license. During Setup, you will be asked if you have a domain. If you are client of a major provider, just give your credentials and the configuration will be done for you. Otherwise the configurations steps will be instructed to you.
In only 5 minutes you already have the same infrastructure and office suite as a multinational company for a few bucks.
We will directly go to the next step, you can create the accounts of other members of the company later.
Now connect you on manage.windowsazure.com with your office 365 account and click on ' subscribe to azure. After filling out a few information you're ready to use Azure to build great applications.
What we are looking for is at the bottom left.
Click on new
Give a name to your visual studio online instance and don’t forget to select your directory (the one that is in fact bound to office 365).
If you already have a subscription Azure, this video explains how to use your office 365 on this subscription area https://www.YouTube.com/watch?v=pN0us3Zp-TQ
So now you have an infrastructure that allows you to do what I mentioned above in 10 minutes with minimal costs and configuration. Your employees use one single account for all their tools.
Feel free to explore the possibilities of online services (Azure + office 365 +...) Microsoft (or other). These are elements to take into account in your company's strategy and which are changing the rules of the business world.
I have taken as an example a startup but be aware that my current company www.negotium.com (150 persons) is 100% on office 365 for collaboration, unified communications and Messaging. We already use Azure for a major part of our infrastructure. And we (I have responsibility) are migrating visual studio online our software development factory.