How to make pluggable architecture ASP.NET5/MVC 6? - plugins

I want to build an web application(ASP.NET MVC 6) that can add modules/plugins without having to rewrite my source code.
Already read about MEF and Areas but are not helping much.
Someone who has overcome this problem that can help me?

Depends on which part of the web application you are targeting.
1.If it's in the request pipeline you would make a Middleware package.
2.It's it's in HTML you would make a TAG Helper package.
3.If it's an intrinsic functionality you would extend appropriate classes and throw them into a package. An example of this would be helpful extension methods or methods to add claims given a claims principal.
4.If you want to go even further you could create your own Visual Studio templates that you can use to pre-fill your options upon creation.

Related

Scala-Play: How to dynamically generate a view?

For a Web Service framework I am currently working on I'd like to add the possibility to test the generic Json services based on their metadata. It should be possible to dynamically build a view to let users test available Web Services. Is there a provision or some supported way to generate views dynamically in Play? if not and supposing that I simply make a template and generate it on the fly, how can this view be injected into the application at runtime?
I will be happy to see documentation/examples/pointers that could help develop such solution ...
I am assuming that you want to create a scala.html and use it on somewhere by taking the html created, is that?
If you create a scala template myView.scala.html then on MyController you can call views.html.myView.render().body(); Then you would have the html created by the template.
Template Documentation

How to build plugins style web platform with angular2

The idea is not new, like Wordpress, Oxwall : a platform created by some guru guy that allowing other dev guys to add new apps (like forum, blog, market-place, whatever) into the platform easily. By easy, we mean either just install new plugin by upload or less user friendly coding new plugin without changing the core code.
Actually, we have a working solution with angular1 but quite clumsy, that's it, multiple stand-alone ng-app within a website, like:
domain.com/forum-spa
domain.com/dating-app-spa
..etc..
Good thing about it is quite straightforward to implement, not much to worry about lazy-loading. But we are not happy with that approach for many reasons.
Angular2 is really close. We hope it can bring a better solution for building a large web platform
iframe
custom components that are added at build time that are added depending on user data like explained in Angular 2 dynamic tabs with user-click chosen components
This approach is compatible with the offline template compiler
There is also a more flexible way that supports user-provided component templates How to realize website with hundreds of pages in Angular2
This approach is not compatible with the offline template compiler and requires the Angular parser and compiler to be included in the build output.

Dynamics crm 2011 online - how to create a custom code that is run once?

I want to create a dynamics crm solution that will be imported by the customer.
After import, the user must complete some settings in a custom entity. After this, a specific code must run for these new settings, but only once. I cannot use custom workflows because it has to work in the online crm too.
The best would have been to have a synchronous plugin that is registered to execute when the settings are saved. I cannot do this because plugins can be registered for a limited set of entities, custom entities are not supported (am I right on this?).
What alternatives do I have?
Using a Configuration Page for your solution might make it easier for the user to configure. Instead of making the user manually set up a configuration entity, use Javascript in the Configuration Page web resource to hit the REST endpoint and do the setup for you. You might also be able to run your custom setup code using Javascript (or use a plugin on the configuration entity as ckeller has confirmed). Here's a link about the special Configuration Page:
http://mahenderpal.wordpress.com/2011/07/26/step-by-step-adding-configuration-page-in-solution-ms-crm-2011/

How to extend Alfresco Share existing activity list dashlet with my own activity type?

In Community 4.0.a, I'm posting my custom activities in the repo following this: http://wiki.alfresco.com/wiki/3.0_Activities_Developer_Guide
I have defined my own activity type, with custom bundles and pagelink to display custom needs in the activity dashlet.
But I face an issue, I need to specialize the output based on the activity-type in a similar way of what is done already in activity-list.get.js in the specialize() function.
I can't hack the js cause I'm packaging things in my own amp for Share.
What is the best way to do it? Is there some kind of extension point or do I need to override completely the dashlet?
The old way (3.x) to change the behaviour of a webscript controller is to copy the code and overwrite the Javascript by placing it under web-extension: alfresco/web-extension/site-webscripts/org/alfresco/components/dashlets/activity-list.get.js. There you can modify the specialize() function or whatever you need to do.
All files you place in the alfresco/web-extension/site-webscripts folder will replace original files in the share.war WEB-INF/classes/alfresco/site-webscripts classpath. Best practice is to place your customizations in the tomcat/shared/classes/alfresco/web-extension folder so you don't need to modify the WAR file.
Alfresco 4.0 provides a new way to change the javascript controllers of a webscript. You can add additional Javascript code that will run after the original code. This is preferable because you don't need to change original code and you can upgrade more easily later. To use it you need to get familiar with the new Share extension modules concept. See David Draper's Blog for more info on that.

How to automate Lightswitch for metaprogramming

I really like the Ria Services approach, and I see Lightswitch as the next higher level of abstraction, but my scenario is this:
I need to be able to define a Lighswitch app without having to rely on the designer and tedious click-throughs. If I have access to the API that the designer uses, then I can automate application generation, I can parameterize it and apply custome logic for generating custom variations of the same application type, I can even wrap it within a DSL. As a programmer, I want to levarge Lightswitch for developing applications by meta-programming.
I'm a programmer. Whilest I can use the "Write Code" dropdown to insert code blocks into the Application, ApplicationDataService, EntityObject and ScreenObject classes, I would like the ability to define entites, screens, relationships and queries through code / markup / a DSL.
Obviously Lightswitch meta-programs this when I use the designer, but I would like to do it myself. What I would like to accomplish is to create a lightswitch app - without having to click through a tool or designer. In Lightswitch, the pieces are obviously there (the designer leverages them), but they are not exposed as a public API. being a plugin for visual studio, perhaps there is a VSIX API extension I can leverage for automating Lightswitch? Show me some code.
The LS team have not yet released any official API information. As you may know however, all of various data/query/screen definitions exist in the ApplicationDefinition.lsml file, located in the LS project's "Data" folder.
I would hope that API information will be made available once the RTM has been released.
Yann