Setup development environment for MSCRM

 

Dynamics CRM & Development practices – 1

Want to start dirtying your hands on customizing Dynamics CRM, you have landed at the right place.

Spin-up your trial instance

You can select a specific app, like sales or service or you can custom install all. Max trial duration is 90 days. Installation link here.

Download Dynamic CRM SDK

Microsoft provides a heavy documentation in and around Dynamics CRM. Along with the sample code, tools like plugin registration it comes with a lot of handy other things like visual studio templates for modular programming. Download it here.

Download and set up Visual Studio

You are all set to start coding, OOPS, you need a code editor tool and what’s better than VS.

Download the latest VS from here, recommended VS 2015 or get ready to do some tweaks in the CRM toolkit versioning.

Setup CRM toolkit for Visual Studio

Microsoft Dynamics provides a modular way of programming for standard development and easy deployment.

  • For CRM customizations and writing web resources like below, you can download the download the template from here.
    • HTML,
    • Javascript
    • Plugins
    • Custom Workflows
  • This helps to follow the ALM process and recommended quality gates. In your local SDK install you can find the template file -CRMSDKTemplates.vsix here (SDK\Templates), just double click and install.

In case you are using VS 2017 for D365, you would need to tweak the VSIX file as below:

  • Go to the location where you have downloaded the CRM developer tools.vsix file.

  • Unzip the file using 7zip and open the extension.vsixmanifest file in any editor.
  • Original version support is 14.0 as can be seen below which is equivalent to VS 2015. 
  • Modify the version to 15.0 which is an equivalent of VS 2017
  • Save, zip all the contents back again and rename the extension to vsix. Double click and install, CRM package template is available for your VS 2017 now. (During installation, the package will throw a warning for support of VS 2017, press okay and proceed)

Happy Coding!!

 

How to start a startup!

The startup culture is full of people who want to and try to but just can’t get their business off the ground. Why is this the case? Much of the reason has to do with the fact that many entrepreneurs don’t know how to take their business from point A to B. Point A is that brilliant idea in the mind of the entrepreneur. B is that subsequent, hoped-for state where the business is secure, established and making money.

“In between” is tough.

1. Just start.

In our experience, it’s more important to start than to start right. Think about it. If you don’t start your business, nothing will happen. Whatever it is that’s keeping you from launching is the very thing you either need to ignore or tackle head-on. So . . .

  • Write the first line of code.
  • Register the domain.
  • Sketch the product.
  • Design the prototype.

There is nothing standing in the way of your starting your business except yourself. Do the first thing that needs to be done.

2. Sell anything.

There are some entrepreneurs who know exactly what they want to sell. There are other entrepreneurs who have no idea what they’re going to sell. They just want to sell something. Here’s our advice: Sell anything.

Many of the world’s greatest entrepreneurs aren’t selling anything new. They are selling it different or better:

  • Sam Walton (Wal-Mart) sold the same thing that you could find at any five-and-dime or corner convenience store.
  • Ted Turner simply sold television broadcasting and advertising.
  • Howard Schultz sold coffee.
  • Warren Buffett bought and sold other people’s stock.

Entrepreneurs aren’t always innovators. You can take someone else’s product and sell it. Richard Branson, after all, launched Virgin Airlines in desperation. He was headed to the Virgin Islands for an, um, romantic interlude. But his flight was canceled. So, he chartered a private flight, despite his lack of money to pay for it. Here’s how he described what happened next:

I picked up a small blackboard, wrote “Virgin Airlines. $29” on it and went over to the group of people who had been on the flight that was canceled. I sold tickets for the rest of the seats on the plane, used their money to pay for the chartered plane and we all went to the Virgin Islands that night.

Got the message? Go ahead and sell something. Anything.

3. Ask someone for advice, then ask him/her to do it.

When you start a business, you will most definitely not have all the answers. For example, you’ll need to get incorporated, but how? S-Corp, C-Corp or LLC?

To get these answers, ask a competent attorney. The attorney will provide advice — say it’s to start an S-Corp. But, then what? Ask the attorney to do it for you. Instantly, you will have gained an expert who is implementing his/her own advice for your money. Payment? You can reward the attorney with stocks or deferred payment.

When an issue arises, and you don’t have the answer, find someone who does. Then, when this expert gives you advice — whether the business best practice, manufacturing locations, logo design, accounting, whatever — ask that person to do it.

Your business needs more help, knowledge and professional skills that you have time for. Get people to work for you.

4. Hire remote workers.

If you want to find the best and most affordable talent, you may not find it next door. Be willing to hire remote workers to get great work done.

5. Hire contract workers.

Becoming an employer carries with it a lot of baggage. It may, in fact, form such a barrier that it slows down the process of your startup. Besides, few people will be willing to take the plunge to become the employee of a tenuous startup.

Instead of hiring employees, hire on a contract basis. The point is, you need to find a way to get the talent to provide their services. Don’t let the specific arrangement get in the way of getting stuff done.

6. Find a co-founder.

Read more here.

 

 

Start your own web design company!

2018 is shaping up to be a year of change and for start-ups, an excellent opportunity to launch a bold new website incorporating the latest design trends. So what website design features worked in 2017 and what can we expect to see more of in 2018?

Some of the more ‘out there’ website design trends include features like virtual reality in the browser (check out Magic Leap for a taste of things to come), Chatbots and AI-powered interfaces like Zo.

Here at Dynamics Monk, we looked at what worked for us regarding web and graphic design from our own work and other design sites around the net. Focusing mainly on startups or new online businesses, we’ve picked five design tips for startup websites that we think are both cool and (more importantly) will improve the user experience for your customers. A survey by Adobe found that 38% of people will stop engaging with a website if the content or layout is unattractive, so we not just talking window-dressing here, a good website design is crucial to customer engagement.

  1. Minimalism

Minimalist design was big in 2017 and will continue in popularity for two good reasons:

  • It removes visual clutter and helps users to get things done more efficiently.
  • Websites with clean, simple interfaces that offer a cohesive mobile and desktop experience win big with users and customers.

Many sites are stripping back the extras and focusing on their content. This means fewer links, banners, etc. and white space, which encourages scrolling and exploration. Simple sites load much faster, a vital feature for your site, as most users will abandon a website if it takes more than 2 seconds to load.

One feature of minimalism that hasn’t proved to be so successful is Flat Design, where links can be so subtle that users don’t know where to click and become confused. Semi-Flat Design (also known as Flat Design 2.0), introduces subtle shadows, highlights, and layers that give users the necessary signifiers to navigate your site without frustration.

     2. Micro-interactions

Image credit: wikia.com

As Nick Babich from uxplanet.org describes them, micro-interactions are ‘subtle moments centered around accomplishing a single task’. These can be hovers, click animations, scrolling effects or many other simple techniques that improve UX. in 2018, more of these features will be incorporated into the mobile web, as screen sizes grow and customers expect to do more on their smartphones and tablets.

A good micro-interaction:

  • Provides feedback to the user
  • Gives them a sense of being in control
  • Encourages them to act (the call to action)
  1. Landing Pages

Homepages are so ‘last year’! Actually, home pages are still vital but more and more, the way to grow your business in the online space is through dedicated landing pages that form part of a unified content strategy. For a lean startup, this approach is particularly effective; you can use social media to generate interest in your company while avoiding the high costs associated with traditional advertising.

93% of online experiences begin with a search engine (Source ImForza.com), which means website visitors are not necessarily entering through the ‘front door’, so it pays to create SEO-optimised landing pages that deal more directly with the needs of your potential customers.

  1. Animation

As the internet becomes more like television, moving visual elements such as animations, GIF’s and cinema graphs can play a great role in conveying concepts and bringing your site to life. Simple animations load much quicker than video or high-res photos and offer startups a great visual tool to explain abstract concepts. A captivating animation or a cheeky Cinemagraph can also buy you valuable extra eyeball time and keep visitors on your site for longer.

Cinemagraphs are basically classy animated GIFs. They usually employ subtle movement that is appealing without the potential annoyance factor of GIFs. Check out these beautiful examples of Cinemagraphs here.

Animations used to be resource-hungry Flash creations, today, with Javascript and CSS coding, websites run much more smoothly. Animations needn’t be just gimmicks, they can be integral components which improve the user experience. For example, many websites use the shaking effect for login fields to indicate to the user that an incorrect action has been taken.

       5. Credibility

In this post-truth age, with fake news and an overload of information, credibility and trustworthiness are valuable assets. Website design can play a role in communicating these attributes. The renowned UX expert Jakob Nielsen offers the following advice to enhance website credibility:

  • Websites should have a professional look with clear navigation and no typos!
  • Be upfront. Disclose all relevant information, e.g. shipping charges.
  • Be comprehensive, correct and current. Any old photos or dead links will send users away.
  • Connect to other sites. Links to other third-party sites is a sign of confidence and standing.

At Activate Design, we proudly acknowledge our Christchurch based location as a Website and Graphic Design company. In this way, customers are reassured that there is a solid, bricks and mortar company behind it all (well, steel and glass in our case!).

It’s important to remember that while website design can evolve rapidly from year to year, the online habits of users change very slowly and we need to accommodate their needs by keeping to good human-centered design principles.

So there you go, five website design tips to incorporate into your next website. If you’d like more information on any of these design tips, give us a call or email us. Stay tuned for more.

Inspiration for the article here.

Choose right technology for your website.

Choosing a tech stack for your web application

 

Are you a founder, CEO, CTO, consultant or other stakeholders who need to decide how to build a software product? Having trouble deciding on the tech stack for your web application? Should you use Python or Java as a language? Is node.js or Flask / Django the right choice for the web framework? What is the best front-end option: Angular, React or VueJS? What about the database — MySQL, Postgres or MongoDB? Should you self-host with Apache or Nginx on DigitalOcean, or just go to Amazon AWS? Maybe you’d rather work with a PaaS like Heroku?

If you have a million questions and don’t know where to start, this article can help you to make your decision.

1. Keep it simple. Go agile!

Often, the technology you choose will never wind up mattering, because the product itself fails. Many startups go with a scaling technology and spend time and energy on a robust build, only to find out that there’s no market for their product.

Whenever you want to build a product from scratch, the best option is to go with the easiest solution. A landing page with WordPress or Unbounce could well be enough. Maybe even a static page faking what you’re trying to solve would work. It’s important to gauge interest in your product before you go through the trouble of building it. It’s okay if the technology for the proof of concept winds up being different from the one you use in the end.

As soon as you know that your concept will work, you can move forward with building the product. Stay agile during this phase. You should never spend several months compiling a 100-page system specification (“Pflichten- und Lastenheft” in German) for the developers, especially if it assumes 6 or 12 months for product realization. It will probably result in a product that is either obsolete or delivered too late.

Think first things first. Get a basic page running, then your first feature, then second. The advantages of doing things this way are that you can evaluate progress in real-time and change direction as needed. You minimize your risk because your system is already running. You may not yet have all the features you had imagined, but it’s running!

2. Think about your personal requirements

Keep your problem space in mind. The technology you choose should depend on the problem you want to solve. Some things are better done in one language than another — for example, Python is great for computation and statistics.

Users before technology

Products should be built for their users. What product do you want to build? How can you create the best user experience? Think about who will be using your system. Will they work on desktops or tablets? Will they access things via a mobile connection (as 60% of all users currently do)? Should there be a desktop-style application? What browsers will be used most often?

Speed & performance

Do you have (excluding) criteria? Will the software be running on your intranet? If so, initial loading times could be less than optimal.

And again, always think agile when possible. Is performance really a problem you need to deal with right now? If you intend to be big, you can always start with Platform-as-a-Service (like Heroku) before improving performance with your own infrastructure. Instead of spending time and money when you’re still very small, you can worry about performance once you’ve crossed the appropriate size threshold.

Migrations & legacy systems

Do you have databases and/or data which need to be migrated? Do you have legacy systems which need to be transferred to the new system? These and similar considerations need to be examined and evaluated.

Security

Security should never be neglected. Depending on the kind of data you work with, security could even be the most important factor. Determine why you need to secure something before deciding how to secure it. But remember, technology isn’t everything — keep in mind that security depends primarily on the skill set of your developers, the work environment and the policies you implement.

3. Go for open-source technologies

When building new software, you should seek out open-source solutions. They prevent you from having to build everything from scratch; it will save you a lot of time and is probably more secure (many heads are better than few). You’ll also be able to focus on the business side of things and making your product stand out. Remember to give back to the open-source community!

Once you’ve singled out a prospective technology, you should run through a checklist. What kind of license does it have? Does the language or framework have the features you or your developers need? How many core developers are there? You can check out the contributors or stars in the Github repository and how they have evolved over time. Is the source code easy to understand if you need to go deeper and check the algorithm under the hood? Is the documentation comprehensive, is the tech thoroughly tested, and are there starter boilerplates to get you going quickly?

Another important question: how does the team behind the technology deal with security problems? Is there an email address for reporting security vulnerabilities?

4. Check the ecosystem

Every technology has an ecosystem composed of people and tools.

How big is the ecosystem behind the language or framework? How many StackOverflow questions, conferences, and online tutorials (e.g. Udemy) are there? What does Google Trends say? Is interest in the software still growing? How many packages (npm, PyPi, etc.) are there, and do they have licenses you can work with?

Do you know about the awesome lists? They help you dig into the ecosystem of a language or framework. You can check tutorials, articles, and important packages relating to a given technology. There are lists for Djangonode.jsReactAngular, and many more.

Also important: is the community welcoming new members, and how active is the community? How is the support for users and developers? Is there a mailing list, a chat channel, a Slack room, or a ticketing system? Are people blogging about the technology?

5. Long-term trends & support

Market lifecycles

Every technology has a lifecycle. You want to choose mature technologies because they are reliable. You should check the latest Technology Radar to get an idea of how future-proof technologies are; this can help you decide whether to adopt them or put them on hold. The Technology Radar is free and it separates technologies into the categories of Techniques, Platforms, Tools and Languages & Frameworks. However, you should use the resource with caution, as the information is provided is not set in stone.

Another idea is to check industry-favorite technology stacks with stackshare.io or techstacks.io. Check out what Airbnb is using or what people like about AngularJS and who is using it. If you’re unsure about a technology, you can search for alternatives. Here is a list of alternatives to Angular JS on alternativeto.net.

Long-term vendor support

Does the technology vendor look like they’ll be around for a while? Are big companies sponsoring the development of the tech in question? Google is behind Angular, and Facebook is behind React. This means that there should be some progress until the company eventually decides to drop their support (yes, this can happen). But the bigger the community, the bigger the chance that things will stick around for quite some time.

Some applications have versions with long-term support. Specified versions are then provided with bug-fixes for a given period of time. You should also check the technology’s webpage: how are updates handled? How easy is the update/migration process? Have there been particularly incompatible versions (like Angular 1 & Angular 2)?

6. Human resources & recruiting

What developers do you have on your side? If you have to decide on a front-end technology and you have three strong Angular developers, you should probably work with those. Moving fast can be important, and it’s quite an advantage to have people who are in their comfort zone instead of learning a new technology. Also, existing knowledge of the ecosystem is an additional benefit.

Regarding recruiting, be sure to check the following: can you find enough quality developers for the desired technology? How much do you need to pay them? Are big companies working with the same technologies and snatching up all the good developers? Are the developers you find mostly established professionals, or is it hard to differentiate between them and the script kiddies? A good Java developer may be easier to find than a good Ruby on Rails or PHP developer. For your research, you can check XING, LinkedIn or job search portals. You can also check for job trends (e.g. comparing Angular with React).

Is the technology easy to learn? An easy language can help you find and train junior developers, and the whole ecosystem could attract more people.

Last but not least: a great resource in HR is the Stackoverflow Developer survey. It provides a great overview of developer types, utilized technologies, and salary reports. Have a look!

7. Will you be flexible enough?

Service granularity

Things are changing much more quickly than they were 20 years ago. For a long time, people worked primarily on desktop computers and with Windows. This will probably not be the case in another 10 years. Your chosen technology will probably stay with you for 5 to 10 years: this is a long time, and you can’t be sure how things will evolve. That’s why you need to be prepared to change technologies when the need arises.

Think granular, think in little packages, and think in the separation of concerns. You should separate services, back-ends, and front-ends into smaller applications and micro-services. You should be able to easily swap out technologies when the existing ones don’t work for you anymore. Check out concepts like service-orientated architecture (SOA) and domain-driven design(DDD).

Can you bail? Will it scale?

Do you always have access to the data? Is it always possible to export your data if you need to change technologies? Does the technology have an API to allow flexibility on the other end? Maybe you want to open your application to your clients or customers, or you want to build mobile apps, desktop apps or other systems on top of the chosen technology.

8. How does it feel?

Have your developers look into the technology, or do so yourself. What are your first impressions? Have a little pilot setup, try out existing boilerplates, or (if possible) have a little test project. If you go with granular services, you can build a new little service with a given technology and see how it works.

There are also real-world applications which can give you a better understanding of the differences. TodoMVC is a great project — a simple Todo app is realized with different Javascript frameworks, and you can check out the source code architecture. There are all kinds of examples, and you can compare Angular with React or Vue with Ember.

The awesome RealWorld project goes even further: it’s a Medium-like full-stack-application utilizing either Django or node.js for the back-end and Angular or React for the front-end. You can read an introductory article about it by Eric Simons.

9. Get started

If you are a small startup, getting to market is more important than having the perfect tech. Focus on your business and marketing rather than having all the technology pre-optimization necessary to handle the number of users Facebook has. You probably won’t have all the required knowledge at an early stage, but you can fine-tune and optimize things or change tech stacks as you grow (and have the requisite budget).

As an enterprise, things can be different. The decision will mostly be political anyway — people in your company need to be okay with your decision. The management (and hopefully the in-house / prospective developers) are probably the most important stakeholders to have on board.

It’s important to keep in mind that quality is a matter of doing things properly. Technology isn’t the only thing that matters: you need the right design, the right requirements, the right testing procedures, and so on. The most important thing is making sure that you don’t limit yourself in terms of scale or migrating to a different technology in the future.

More resources here

4 Ways to Advance Your Career at a Start-up

 

One of the things that people love about working at small start-ups is the flat management structure. Instead of presenting your ideas to your manager’s manager after spending two days preparing a PowerPoint presentation, you can focus on simply executing them. When you’re the entire marketing department or the only mobile developer, there’s simply no need for dozens of meetings—most days, you’ll know what’s going on in your company simply by showing up to work.

For many people, this type of autonomy results in greater levels of responsibility and can give your career a great deal of breadth. But even in this type of environment, a year or so after you’ve got a job you love, you might be looking for new challenges (and maybe even more money!). So, how do you continue to advance your career without a formal organizational ladder to climb? Try one of these strategies.

1. Join a Growing Company

This one is the most obvious approaches: If you join a company that’s growing and changing quickly (or has the potential to), there will likely be more opportunities for new roles and new responsibilities. So, when you’re interviewing for positions, ask questions that give you a sense of the company’s trajectory: What’s the funding situation? What are the company’s sales and revenue goals? What’s the hiring plan for the next 12 months? How does leadership see your role evolving over time?

If you’re entry-level, this can be especially important, since you may be specifically starting as an Office Manager or Junior Back-End Engineer with the goal to become an HR Lead or DevOps Engineer.

2. Be Upfront About Your Goals

The worst thing you can do—at any job—is to be quiet about your career goals and hope they work out. Do you want to eventually manage a team? Are you hoping to switch roles when your dream role opens up? Let your company’s founders know now, and ask what you can do to get yourself there. Then, make a point to regularly check in on your progress.

Also, be clear about what type of advancement is important to you. You may want more responsibility and new projects, or you may just want a better title that you feel you’ve earned after a set period of time. At InstaEDU, one of our early hires let me know she really wanted management experience, so we put her in charge of managing our summer intern. But we might not have made a point of doing so if she didn’t tell us she wanted to gain that skill.

3. Pick Up New Projects

At a start-up, there’s always way more to do than people to get it done. So, think about the types of people your company would hire if the company was twice the size, choose an area that you’d like to learn about, and suggest a project to the founders. For example, if your company has talked about building out a sales team in the future and you’d love to get exposure in that area, offer to test out the viability of sales as a customer acquisition strategy. As long as you’re still performing in your core role, your manager will probably be happy to have the extra help—and you’ll have the chance to build out a new skill set.

4. Be a Leader


Even if you’re not managing a team, there are lots of opportunities to lead a growing company. When new hires start, take the initiative to help them get up to speed. Instead of waiting for directives from your manager, put together a plan for how you think your time would be best spent. Proving that you can make those around you more productive and be planning strategically will prove that you’re the person for the job when your company does need a management structure.

Hiring and keeping top employees is the goal of any start-up management team. With so many companies competing for talent, your manager will most likely do what he or she can to make you happy—and make you as valuable as possible to the company’s future. But it takes two to do this, so determine your goals, make them known, and work to get yourself there.

Free Quote