2.0 Developments

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
13 years ago
Andrei and Nop Team,

Today's current release of 2.0 on codeplex is very exciting.  I have been following the progress for some time and I have been working on a my own mock application to familiarize myself with the direction 2.0 is taking.

I have a couple of questions and suggestions about where things stand as of today?  Please note that I understand you may not have answers to all these questions and I don't expect you to answer them all.  If you have time it would be nice to know.

1. You moved from structuremap to autofac.  What were some of the reasons behind this? InstancePerHttpRequest? Better pluggability?

2. You added DependencyRegistrar (note: it is misspelled) classes in all 3 main projects yet all of your services are registered in the main MVC application.  In structuremap it was necessary to register the repositories and the services in the DIRegistry.  What are the other DependencyRegistrar classes to be used for?  Some examples maybe?

3. The plugin architecture is very exciting.  I spent some time reading on the links you provided in your comments.  Am I to assume that your vision for this would be a third party project(s) that contained logic, controllers, and views necessary to run the plugin?  A complete self contained .dll file if you will?

4. As part of IWorkContext.cs I noticed that CurrentTheme is included.  Do you have any general ideas of how you plan on implementing a "Theme Engine"?  Similar to Orchard?

5. Any ideas about how to replace Rhino Mocks?  I was in the middle of testing my service classes.

6. Lastly, I noticed you have jqGrid in your category example.  May I suggest you look at SlickGrid (admin only).  From a performance standpoint there just isn't anything faster.  The setup requires a little more js and the libraries (depending on the features you choose to implement) are a bit heavier but the ability to scroll and update through 1000's of records is pretty amazing.  One of the biggest complaints I heard about previous versions of nopCommerce is the slow admin.  Michael Liebman is the author and the project is hosted here. Check out the examples.

Sorry for the long set of questions.  Again, any insight you can provide when you have time would be greatly appreciated.  Keep up the good work and I look forward to more progress.

t

EDIT: Scratch number 5.  This still works for testing service classes.  I guess I don't understand what issue you were having.
13 years ago
Hi,

1. Autofac is still actively developed. See commits here and here. It includes biuld-in MVC 3, MEF and other integrations. Another argument: look at other popular open-source solutions (Umbraco and Orchard). They also use Autofac. Hence existing users of these solutions don't have to learn new IoC tool when starting to use nopCommerce.
2. These file are examples. They could be use to register dependencies in plugins.
3. Right, just drop an assembly into /Plugin directory (no recompilation will be required).
4. We haven't discussed it yet
6. jqGrid is much more popular than SlickGrid. BTW, I haven't found any paging support in SlickGrid (in the examples you provided). jqGrid is not the final decision. And this question is still discussed on our internal forum.
13 years ago
Thanks for your response.  This clears a few things up.

In regards to slickgrid, there is paging support but the example does not implement it because it loads all 10000 records at once.  The paging library is slick.pager.

I guess some of the reasons I brought it up was envisioning how it would effortlessly scroll through the miles of configuration settings that currently haunt 1.x.  Paging is almost counter productive because trying to get "Admin.Whatever" requires next, next, next, next, next, etc.  Guessing a page number is also frustrating.  

SlickGrid uses something the author calls "virtual rendering".  He can explain it better than I can, but given the inherent lightweight nature of JSON objects it is more than reasonable to load a 1000+ products, categories, or configuration settings and never have to make another postback or AJAX call.

I know this is an issue farther down the line and whether you decide to use jqGrid, SlickGrid, or another product the improvement from the asp.net Grid will be substantial.  

Here are some links that I found useful before I decided on slickgrid.  Thanks again Andrei.

SO 1
SO 2
SO3

EDIT: After rechecking the above links it appears one of the answers was updated to note that jqGrid has added a loading while scrolling feature in v3.6.  This would be a key addition in my view.
13 years ago
Hi Guys, new build stuff is looking real good!

I'm working on some plugin functionality that extends the 'Shipping' Service with new methods, and operations.

I've started by 'Copying' one of the other plugin files into a new Plugin project (so I can build it independently of the rest of the solution! - very cool)

Anyways, I'm looking at the core NopCommerce functionality of the iShippingService and I want to be able to access it in my new solution, but it doesn't yet extend the the default methods.

Just to make sure I'm on the right track, I need to add a 'provider' that extends the IPlugin class to the iShippingService like so:


    public partial interface IShippingProvider : IPlugin
    {
         ... put methods my plugin will need to access here and implement them in my plugin?
    }


Just so I understand - after I've added these method interfaces they can replace the default functionality in the iShippingService or are they just for providing core functionality to my plugin by localizing the functions into my plugin project.

Update

I've looked at the AutoFac Examples that are part of the Github actively developed project, and I understand the basics, their 'Plugin' projects actively provide interfaces to their own methods which are implemented within the project.

So I'm assuming I can just extend the current IShippingService Interface within my plugin's solution to implement new methods.

This way any changes that need to happened in the presentation layer will use the same 'services' to access new methods correct?
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.