Вам нужно будет генерировать sql динамически:
declare @tablename varchar(50)
set @tablename = 'test'
declare @sql varchar(500)
set @sql = 'select * from ' + @tablename
exec (@sql)
Я судил MVP, и это, кажется, работает отлично с формами окон также. Эта книга имеет пример форм окон с шаблоном MVP (демонстрационное приложение платежной ведомости). Приложение не то, что комплекс, но даст Вам общее представление о том, как пойти о создании его.
Гибкие Принципы, Шаблоны и Методы в C#...
можно получить исходный код в РЕДАКТИРОВАНИЕ Исходного кода
существует два изменения MVP шаблона (a) Passive представления и (b) наблюдения контроллера
Для сложных сценариев привязки данных я предпочитаю идти с шаблоном контроллера Наблюдения. В наблюдении шаблона контроллера ответственность за привязку данных лежат на представлении. Так, для treeview/datagrid это должно быть в соответствующих представлениях, только просмотреть агностическую логику, должен, шел дальше предъявителю.
я рекомендую взглянуть на следующую платформу MVP MVC# - платформа MVP
не идет именем (это - платформа MVP).
Простое видео MVP winforms Winforms - MVP
пример контакта с MVP выпадающего списка - DropDownList
Ниже фрагмент кода.... не протестированный, непосредственно введенный от мысли....
public interface IYourView
{
void BindTree(Model model);
}
public class YourView : System.Windows.Forms, IYourView
{
private Presenter presenter;
public YourView()
{
presenter = new YourPresenter(this);
}
public override OnLoad()
{
presenter.OnLoad();
}
public void BindTree(Model model)
{
// Binding logic goes here....
}
}
public class YourPresenter
{
private IYourView view;
public YourPresenter(IYourView view)
{
this.view = view;
}
public void OnLoad()
{
// Get data from service.... or whatever soruce
Model model = service.GetData(...);
view.BindTree(model);
}
}
Как это уже сказало, я всегда работал в шаблоне MVP при использовании Winforms. Но шаблон разработки, который Вы будете использовать не, означает использование права. Существуют загрузки антишаблона, присоединенного к MVP.
, Если Вы хотите к запускам все хорошим способом, необходимо использовать платформу для создания умного клиента. Таким образом, я рекомендую использовать тот дизайн и методы: Умная Фабрика клиентского программного обеспечения http://www.codeplex.com/smartclient
у Вас есть дискуссия здесь о текущих умных клиентских платформах: http://codebetter.com/blogs/glenn.block/archive/2008/05/10/prism-cab-and-winforms-futures.aspx
пз: Мне нравится это сообщение на антишаблонах MVP: http://blog.mattwynne.net/2007/06/13/mvp-smells/
Hope это помогает
метод BindTree кажется немного испорченным мне. Внезапно Представление знает abou Модель. Это - хорошая вещь? Должны быть тонны poeple, столкнутого с подобными проблемами. Я удивлен, что нет никаких книг об этом. С тех пор существуют книги обо всем в мире.NET.
Они Дизайн не о сокрытии модели скорее точно определение взаимодействий между различными слоями приложений. Можно изменить бэкенд полностью и, пока Вы передаете Модель через Bindtree, Ваш UI продолжит работать.
Теперь класс Модель может быть плохим выбором имени в примере, который дает Rajesh. Это может быть TreeData или RecordsData. Однако Вы определяете его, это имеет то, в чем Вы нуждаетесь к использованию обязательного механизма Winforms для привязки определенного управления с базовыми данными.
лучший сайт для просмотра для этого вида материала здесь . Martin Fowler собрал разнообразие полезного шаблона разработки UI и шаблонов разработки предприятия.
Снова ключ к этому является использованием интерфейсов, чтобы точно определить, как каждый слой взаимодействует друг с другом.
В моем собственном приложении (CAD/CAM приложения раньше выполняли машины резки металла) моя структура похожа на это.
Можно использовать Архитектура предприятия, Шаблоны и Методы как начальная точка, хотя они немного датированы.
Под Общим руководством существует Архитектура приложения для.NET: Разработка Приложений и Сервисов , который является хорошим введением в.NET пути и разделенное на уровни приложение N-tier.
сопроводительный текст http://i.msdn.microsoft.com/ms954595.f00aa01%28en-us%2CMSDN.10%29.gif
Для более формальных "шаблонов", существует Шаблоны Решения для предприятия Используя Microsoft.NET .
(источник: microsoft.com )
Для именования некоторых,
Three-Layered ServicesПервое хорошее объяснение шаблонов разработки UI, которые я прочитал, было в блоге Jeremy Miller - Здание Ваш Собственный CAB. Это описывает общие шаблоны - Пассивное Представление, MVP, и т.д. и обращается к некоторым способам, которыми Вы могли бы реализовать их в C#.
Я полагаю, что MVP является шаблоном, подходящим к разработке WinForms - как частично свидетельствуется, он - использование в CAB - платформа Microsoft для WinForms.
я использую MVP в WinForms для извлечения кода из Представления - потому что я не могу протестировать код Представления. И также включить код, который должен быть снова использован (или дублирован) остаться вне Представления, где это не может быть совместно использовано.
я могу обратиться к своему собственному проекту, где я использую шаблон MVP ExceptionReporter.NET . Хотя я уверен, что не использую его отлично.
Вы упомянули MVVM, работающую на WPF - я думаю, что причина этого из-за сильной поддержки привязки данных. Если бы Вы не использовали привязку данных в WPF (и это, конечно, не обязательно), тогда, то Вы могли выбрать MVP. Так как точка является тем MVP, сильный выбор для любого клиентского приложения. И возможно 'лучший' выбор, даже в WPF, если Вы планируете совместное использование кода между проектами, которые не являются WPF.
Для большего количества доказательства значения использования MVP в WinForms см. видеопрезентацию Boodhoo при использовании MVP: http://www.bestechvideos.com/2008/06/29/dnrtv-show-14-jean-paul-boodhoo-on-model-view-presenter И статья MSDN того же автора в http://msdn.microsoft.com/en-us/magazine/cc188690.aspx
Я написал об одном из вариантов шаблонов проектирования MVP / MVVM под названием MVP-VM, который представляет собой индивидуальное решение для приложений winforms, требующих полного покрытия тестирования и использующих привязку данных в качестве основного механизма для хранения презентация обновлена данными модели.
MVVM (Model View View Model) вводит аналогичный подход для отделяя презентацию от данные в среде, которая расширяет возможности привязка данных (WPF). Начиная с .NET framework 2.0 уже предлагает расширенные инфраструктура привязки данных, которая также позволяет привязать время проектирования объекты приложения - "Модель представления" объект может хорошо вписаться в MVP на основе environment.