The pitfalls of starting a coded bot with SDK v4 - botframework

I'm about to build a chat bot using Microsoft's Bot Framework. I've been transcribing the docs for days to immerse myself in the newness.
It feels like Microsoft wants me to use Composer, but surely Code is King...
I sense that SDK v4 has feature parity with Composer, right?
I can see questions on here about migrating one way or the other. Is this a one way door, in Jeff Bezos speak?
What pitfalls can I expect if I go the coded route? Is this really one of those things that's best done with a GUI?
Thanks in advance.

Of course there's no right answer here. My personal opinion is that Composer makes many "core" features so much easier to create, from dialogs to prompts to using bots as skills. However, as soon as you step out from what Composer considers "standard" (e.g. a dialog loop where you want to maintain some prompt values but reprompt others), you either have to compromise on the features or go to coded. Microsoft is definitely pushing Composer, but I have features that, although maybe not completely necessary, cannot easily (or maybe not at all) be implemented with Composer. I have some of my team exploring Composer bots right now, but for new projects we are still using fully coded bots.

Related

How to determine which heroku buildpack to use when multiple are available?

Obviously selecting the right buildpack is critical in order to make secure, performant, and resilient applications. Heroku seems to work with the dev community to create and share buildpacks. A side effect is that there may not be a single, 'obvious' choice for a given tech stack.
Random example (R)
If we wish to use an R buildpack, a quick google show this popular buildpack is out of date and no longer supported, but we can easily find these three (just examples) here, here, and here
Another random example (cairo)
The cairo buildpack - googling shows numerous in the top results, it's not clear which to use out of, say, the top four on google here, here, here (this one clearly states deprecated, so we can rule that out), and here
Question
What are the main criteria against which we should assess heroku buildpack when faced with >1 that look like they will do the job?
I think the answer here depends on how much you're willing to trust someone else's code.
None of the buildpacks you mentioned are officially supported by Heroku. They are community buildpacks, maintained by the community, and they implement the Heroku Buildpack API.
The Buildpack API is open for anyone to implement. So the most discerning users will write their own buildpacks. Otherwise, you'll have to decide which community you trust the most.

How to create Bot to Bot Dialogs (Nodejs/Typescript)

I am having a bit of trouble establishing a bot to bot dialog conversation that allows for activities in MS teams such as update/delete activity etc. I have been trying to compare the botframework-solutions typescript VA/Skill samples, with botbuilder-samples (https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/80.skills-simple-bot-to-bot).
Generally I know the Typescript sdks tend to be a little bit behind the C#. However the design pattern being used for typescript in the Virtual Assistant example is completely different and uses the botbuilder-solutions library, specifically having both control differences for the parent and the skill bots needing to be done.. Since the skill client and necessary classes already exist in botbuilder, and there exist examples that require only minor changes to the skill bot, what is the "source of truth" for best recommended practices to accomplish bot to bot dialog.
Unfortunately, a Typescript variant of this does not exist yet. However, there is a Javascript sample, 80.skills-simple-bot-to-bot, that may work for you.
It is a basic demonstration showing how to send a message from a "root" bot to a "skill" bot that echoes back the original message. With some elbow grease you may be able to refactor to Typescript and build out the functionality you need.
Hope of help!

When will Nativescript for Windows mature past the proof of concept stage?

The readme.md at https://github.com/NativeScript/windows-runtime says that the Windows runtime for Nativescript is in proof of concept stage, and then lists what I understand to be very deep language features that are not implemented yet.
The tone on the https://www.nativescript.org/blog/nativescript-runtime-preview-for-windows-10 announcement seems a bit more enthusiastic about the current feature set.
Being able to use Nativescript on Windows Phone (and any other platform) is incredibly appealing.
TJ, a core team member, recently posted on the forums about this:
Hey #NezzaGrey,
Thanks for reaching out, and awesome that you’re liking NativeScript :smile:. >Straight to the point though—we’re not actively working on UWP support because >1) it’s a ton of work to add a new platform and commit to supporting that >platform indefinitely, and 2) we’re not seeing nearly enough demand from our >community to justify taking on that work.
That doesn’t mean that UWP support in NativeScript will never happen, but it’s >not coming in the short term because we’re just not seeing the demand. That can >always change though. I’d encourage you to add your use case to the GitHub >issue open for adding UWP support in NativeScript: >https://github.com/NativeScript/NativeScript/issues/254. Yes, the issue is >somewhat ancient, but we really do pay attention to well-thought-out comments >during roadmap discussions.
I’ll note two other things. First, our initial work on making a Windows runtime >is completely open source and available on GitHub: >https://github.com/NativeScript/windows-runtime. We’d love to have community >?>help to make the new runtime a reality.
Second, one option you have is to build your iOS and Android apps with >NativeScript and Angular, and to use our code sharing approaches (see ?>https://www.nativescript.org/blog/code-sharing-between-web-and-mobile-with->angular-and-nativescript1) to share your Angular code with other apps. You >could take that approach to share Angular code between your NativeScript apps >and your UWP apps if you use something like Electron. This approach isn’t >ideal, as you’d probably prefer to build a completely native UWP app, but it’s >something to consider if you’re open to using Electron.
Anyways, hopefully you found some of this helpful. If you have any other >questions feel free to follow up.
Source: https://discourse.nativescript.org/t/windows-uwp-support/2659/3

App Development - Finding the right platform to migrate to from an existing infrastructure

We have an existing cross-platform Mobile Application, that also has an accompanying web application, that uses AWS as a back end (RDS for Database, Four server instances, and a Load Balancer to distribute traffic). APK and IPA files are packaged and sent to the stores, while components are retrieved from our server per request, which enables us to reduce the number of store builds, and make the process easier for getting changes out to clients.
We are at the stage of Development that we need to move to another platform to better facilitate our fast growing client base.
Due to the conditions upon our clients, these things must be considered.
must be cross platform (Android / iOS).
must be offline based (users need to be able to access without an internet connection)
must be able to sync with an existing database when there is a connection
requires Authentication
Cloud based (? may not be the right term, but meaning the ability for us to store components on a server and have a device check for updates and download a local copy - enabling us to work and distribute fixes faster)
Ideally compatible with AWS
We are currently looking at Xamarin to facilitate us for this move, however there is a lot of documentation and plugins out there to do all sorts of different things.
As developers, we all have some .net / c# experience, however none particularly with Xamarin.
We have a particular timeline that we need to adhere to (and need to ramp up in the next couple of weeks), and right now are essentially stuck in Limbo in a research phase, as we can't afford to get some things right. We are unable to move forward until we know Xamarin (or some other framework) is able to do everything that we need it to do.
It's hard to escape from the 'code it all ourselves' mentality - especially as we don't know where to start looking in terms of third party packages for Xamarin, and their documentation itself.
A lot of documentation mentions various systems of Azure - we would not be against moving to Azure over AWS if it _had to be done*, but because of the existing infrastructure with AWS - staying with AWS is obviously the preferred option (users need to access the current system whilst we build the new system)
This stack overflow post is to ask for recommendations, comments, or other observations on anything and everything involved with the process in regards to choosing frameworks, design patterns, methodologies, third party packages, etc.
Obviously we would like to use best practises for everything moving forward for optimum scalability and cleaner, more robust code. It's just hard to know where to start!
Any input will be highly appreciated.
Cheers!
edit: I am aware that this is 'asking for recommendations' which is 'specifically off-topic'. I have read the posting guidelines about open ended discussion, and am quite confident that this case is different. There is an underlying problem here, in that we are seeking advice on combinations of frameworks and plugins that are fully compatible with all of the items in the list (above)
Let's try to breakdown each of your requirement and constraint mentioned in the question.
1. You need a offline first architecture (With Sync mechanism)
Xamarin + Azure would make a good comdo for you, as it would support offline storage out of box (With a simple PullAsync call).
Albeit there are AWS SDK available for Xamarin. Here it goes http://docs.aws.amazon.com/mobile/sdkforxamarin/developerguide/setup.html
So the call is yours. There are few other ways to achieve caching offline storage in Xamarin, you can build upon those strategy in your logic. Alternatively there is a very interesting C# library Akavache for caching and offline storage.
2. OAuth 2.0 Authentication
Xamarin has a very good library named Xamarin.Auth. Though I would not say it is very easily extendible at this but there has been some serious work going on from Xamarin on this library.
But I would say it is very easy to use. The apps I have developed so far that includes - Google OAuth, Facebook integration, Microsoft account integration. It worked fine for all of them.
3. Cloud based distribution
There are nice tools available with Microsoft. Which makes the distribution easy. Have a look at https://mobile.azure.com . Also hockeyApp is good for distribution I found.
Where to start:
A very good starting point for you would be https://channel9.msdn.com . Just go there search with keyword "Xamarin" and view some videos. May be all these cross platform dynamics will be much easier for you.
Overall I found Xamarin a cool product to work with. Because anything that can be done in native Objective C/Swift or Java can very well be done in Xamarin using C#.

eLearning website development by using PHP framework instead of an LMS like Moodle, eFront, etc

I want to develop an e Learning website where B.Tech students will come, explore the courses from various streams, see the videos, can take assessments, see their scores, improve their skills, can give their feedback, can chat with experts.
I do not want to use LMS like Moodle, eFront, etc.
How good it is if i use PHP framework like CodeIgnitor, CakePHP, Zend or YII?
Any advises & inputs will be highly appreciated.
It's very hard to answer without knowing exactly your system requirements, so I'll give you a general response regarding the preferred frameworks in 2015: http://www.sitepoint.com/best-php-framework-2015-sitepoint-survey-results/
As you can see, Laravel is the most popular framework nowadays, so you should be able to find a lot of resources/modules/components that may speed your development.
But then again, you may want to evaluate each of these frameworks against your requirements, your desired PHP version, performance in your servers and your PHP knowledge and select the framework that best fits you. To get you started, here's a sample review done by someone in 2013:
http://mavrck.com/blog/2013/01/ive-evaluated-php-frameworks-and-the-answer-is-laravel/

Resources