|
Thanks CHill60! Appreciate the effort!
Will keep in mind to wait before reposting!
|
|
|
|
|
We used TFS 2015 in our company. There were many branches in our project and we made separate build definition for every branch. So, we had quite a large number of build definitions. It was not good and we made one build definition for several branches. We could specify which branch to work with when starting a build.
For downloading source files we used "DownloadFiles" activity from:
clr-namespace:Microsoft.TeamFoundation.Build.Workflow.Activities;assembly=Microsoft.TeamFoundation.Build.Workflow
It worked fine. Until we moved to TFS 2017.
Downloading files began taking twice as much time from that moment. If it had taken 10 minutes before it began to take 20 minutes then.
Build definitions which continue to use "TfsBuild" activity work fine and quickly. Although "DownloadFiles" and "TfsBuild" have the same internal logic for downloading files. Only "DownloadFiles" activity works slowly. Nothing changed in build definitions. Only TFS version.
Any ideas what can be the reason of downloading files running slowly?
Thanks.
|
|
|
|
|
Hi! Sorry for a simple question but I know nothing and have to create a table that I will put on my site in wordpress. I don't want a simple table like from excel. is there any good tool? I read somewhere that coding is needed but I know nothing about coding. thank you for your help.
|
|
|
|
|
You haven't explained what you want, if not a table like that from Excel.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
|
I don't want a "simple table like from Excel" ... ?
You can "style" Excel sheets / tables any way you want. There are also "thousands" of templates available.
You can then "save as" HTML.
That is "simple"; beyond that, you can have Excel generate tabs; navigation; etc.
"(I) am amazed to see myself here rather than there ... now rather than then".
― Blaise Pascal
|
|
|
|
|
We need more info. Do you mean a table in a database that will store information? Or do you mean a table of information printed out on a web page?
If you mean the latter, then yes, WordPress has tools to add images, tables, fields, etc. It is where you create your pages. I don't have access so I can't walk you through it but it should be pretty easy to find.
There are two kinds of people in the world: those who can extrapolate from incomplete data.
There are only 10 types of people in the world, those who understand binary and those who don't.
|
|
|
|
|
I thinks that unity containers should check child containers instead of the parent container.
That way, during registration after the manager registers global modules, it can pass a child container to every module to register it's services.
Then resolution can then be done using the parent container after it's wrapped in an IServiceLocator.
What do you think?
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
|
|
|
|
|
Why would you be wrapping the parent container in a service locator? You're providing IoC and then subverting it by using service location.
This space for rent
|
|
|
|
|
'Cause in resolution you don't want modules changing other modules services.
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
|
|
|
|
|
I wasn't talking about the child container part - I got that. It was the use of the service locator I was questioning.
This space for rent
|
|
|
|
|
IServiceLocator does not have a RegisterService(). So all modules will be able to use the services registered on the parent container (and child containers) without being able to block the configuration of child containers by adding services to the parent.
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
|
|
|
|
|
Nope, sorry - that didn't make much sense to me. Could you put a practical example here highlighting what you're trying to solve. BTW - don't forget - just because you have registered a child container in your module, this doesn't mean that the parent IUnityContainer is no longer available.
This space for rent
|
|
|
|
|
OK!
// Registration phase
1. Manager creates a container and registers modules.
2. Manager passes a child container to every module to registers it's services.
3. Module1 register LegitLogger as ILogger.
// Resolution
4. Manager passes root container to every module to able to find services added by other modules (on child containers).
Without IServiceLocator wrap, Module2 can register DummyLogger as ILoger on the root container so that LegitLogger will never be found (child containers will not be searched).
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
|
|
|
|
|
I'm a touch confused as to why you think you need to pass the child container in. Remember that unity looks for modules that implement IModule - so, create a base module class that takes the parent container and creates a child container internally. Something like this:
public abstract class ModuleBase : IModule
{
public IUnityContainer ParentContainer { get; private set; }
public ModuleBase(IUnityContainer container)
{
ParentContainer = container;
Container = container.CreateChildContainer();
}
} With that, you have a segregated module architecture that will allow you to set up the interfaces how you like. I would tend to create a fluent architecture here to simplify the registration in here, but that's just me.
This space for rent
|
|
|
|
|
In that setup the following code is possible:
public class DefectiveModuel : IModule
{
public DefectiveModuel(IUnityContainer container)
{
}
}
The setup I'm going for is more like:
public interface IModule
{
void RegisterServices(IUnityContainer container);
void Init(IUnityContainer container);
}
public class Manager
{
public void Init(IUnityContainer root)
{
Modules.Foreach(m => m.RegisterServices(root.CreateChildContainer()));
Modules.Foreach(m => m.Init(root.Wrap()));
}
}
So modules will only be able to configure there child container.
However, they will be able to use the root container to access services added by other modules on child containers under root.
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
modified 15-Feb-17 10:50am.
|
|
|
|
|
Unfortunately, because the parent container is still available to you, there's nothing stopping the inner services from trashing the root container - all they need to do is get the Parent from your IUnityContainer; you're not going to be able to prevent that.
This space for rent
|
|
|
|
|
Just noticed.
Edit: However, It's still hard to predict the order in which the modules will be called.
Edit2: If there was an IServiceRegister interface. Then we could use it to wrap the container during registration.
"The only way of discovering the limits of the possible is to venture a little way past them into the impossible" Arthur C. Clarke
-- modified 15-Feb-17 12:07pm.
|
|
|
|
|
I have handled this, in the past, by hiding the module registration. This works by putting a proxy registrar in place and then exposing this through the module registration instead. At some point, I'll put out an article describing how I did this (part of the idea behind this is that this approach makes it easier to swap IoC containers around).
This space for rent
|
|
|
|
|
Good idea.
PS: I just thought of the idea of having to replace all those IUnityContainer references. That is one scary thought.
____________________________________________________________________________________________________
"The only way of discovering the limits of the possible is to venture a little way past them into the impossible" Arthur C. Clarke
|
|
|
|
|
As for what I'm trying to solve.
In the current setup a module can only use it's services and the services registered on the root container, So modules cannot share there services.
We could pass the root container to modules so they can register there services in a single pool, but then a module can intercept another module's services.
The only way of discovering the limits of the possible is to venture a little way past them into the impossible.
|
|
|
|
|
aboubkr90 wrote: The only way of discovering the limits of the possible is to venture a little way past them into the impossible. Please do not apply that philosophy to daily traffic.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Good thing i don't have a license.
____________________________________________________________________________________________________
"The only way of discovering the limits of the possible is to venture a little way past them into the impossible" Arthur C. Clarke
|
|
|
|
|
Hi,
Im working on an old 9-10 year product that was written using Visual Studio 2005, dot net 2.0. I have upgraded the SQL backend database to 2012. This is a ASP.NET Web Site project. It also comes with its own MSI installer and some Windows Forms Utilities. The ASP.NET pages are looking very old, there are roughly 60-80 or so pages. It currenlty allows certain menu's / pages to be visable via XML configuration. I want to improve the look and feel dramatically. Since VS2005 is no longer supported and will not install on Win10 I have started to migrate to VS2015. The old asp.net pages use aso:Table, asp:TableRow, asp.TableCell but I want to migrate to some type of template engine. My own research suggest moving product to asp.net MVC, this will probably require a rewrite. Does anyone have any suggestions where to go with this task. Many thanks..
|
|
|
|
|
You essentially have two options:
1) Evolve
- Open the solution in VS2015 to upgrade the file format;
- Optionally upgrade the project to the latest version of .NET, and deal with any breaking changes[^] that apply;
- Optionally convert the "web site" project to a "web application" project[^];
- Start making incremental changes to the layout and styles;
2) Rewrite
- Rewrite the entire project in ASP.NET MVC or ASP.NET Core
- Choose between ASP.NET and ASP.NET Core | Microsoft Docs[^]
If you're just looking to make a few changes to the styles, option 1 is probably the way to go. WebForms isn't going to stop working any time soon. And it's possible to add MVC and WebAPI features to an existing WebForms project, so you could rewrite the site one part at a time if necessary.
But if you want to completely rewrite the site, MVC or Core is the way to go. Just be aware that it could be a very big job.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|