Is WCSF for me?

2020-06-04 14:54发布

问题:

I have a 3-man .NET web shop. Over the years we've developed a number of tools for content management, blogging, e-commerce, social network, and so on. We've never really modularized the software, though; so that porting functionality from one site to another is labor-intensive (we typically just copy and paste bits of code and other assets like JS, CSS, and images from the model site to the target site). We do have a control library that provides a lot of shared functionality, but since there's no way to compile ASPX or ASCX files down to the control library, these pages and controls typically just live in each website and get copied and pasted from one site to the next.

We'd like to re-architect our whole platform to make it easier to standardize and reuse modules. Ideally I'd like to be able to xcopy a folder containing everything a module needs, and have the target website recognize it and register it on application start.

Additionally, I'd like to preserve some of the flexibility we currently have, so that a module's functionality (and not just the CSS and master pages) can be easily customized for a particular site. Scenarios might include adding a custom field to a Contacts module, or collecting custom information on a blog comment form.

Finally, I would want to be able to draw a clear line between the base code and each website's customizations, so that we can easily upgrade an existing site to the latest version of the core software by just bringing the core code up to date. I'd see the core code (including common assets, code, and ASPX/ASCX files) living in each website project, but being synced up via source control.

Now, I can see pretty clearly how we would structure and code this all ourselves; however, I'm wondering if the Web Client Software Factory (WCSF) pattern would buy us a lot what we would need. From your experience using WCSF, do you think it would be right for the scenario I describe here? From a quick read, it seems like it would provide a good solution to the modularization problem, but it's not clear if it would provide a straightforward way of customizing a module.

回答1:

The best way for you to answer this is to dive in and experiment a bit -- it's not a waste of time, it's an investment in research. Do some concurrent development with WCSF vs. your conventional architecture, and see which plays best.