Hi,
Im currently working on several complex server controls for the company that I work.
I successfully finished the first version of the controles and its being used several data managing web pages. However on this new version I would like to implement better support for my clientes(Dpt. of Development, Im in Tool and Technology dpt.)
Before i begin my english is just too bad.... also names of software and controls are not real ones since im not sure i can metion their name.... im scared if my chief chops my head off(kidding, he's best boss in the universe!).
Intro of my problem:
There is a internal software called XYZDNA and it is basically a software design to make business software very quickly with less cost and more efficient.
This software is composed of 3 main modules.
1.XObjectStudio.
2.XWinStudio.
3.XWebStudio.
To explain one by one ObjectStudio is where one can define a COM+ object which u can define a DataTables and it automatically register to windows so u can use it from any where in your computer. for example u can create instance and use methods to load data and etc.
WinStudio is to build Data Managing Forms that interact with ObjectStudio which already had databound controls concept, complex datagrid, disconected database concept, and alot more. One of the best feature of this is it can migrate automatically a windows forms to asp pages which looks and does exactly same job as the windows form.
The Last one, WebStudio. This one is the one that im migrating from C++ to ServerControls.
It has this complex controls which would take about hours to develop can be done within minutes.
This software basically has all the basic concepts that .NET aspx implented(This software was developed in 1998). For example, disconected dataset, DataBound controls, Complex Grid(DataGrid), colaboration system... etc. I was pretty amazed when i looked at this software after learning .NET.
As you can realize this software is to accelerate development and give some rest for Software engineers who works so hard doing their same job over and over again...
Overview of my first version of WebStudio.NET(fake name):
My servercontrol has basically 11 controls.
Ill list them so You can realize what they are about.
1. WebComboBox
2. WebInitCollection
3. WebLabel
4. WebLogin
5. WebLookUp
6. WebNavigateButton
7. WebNavigateImageButton
8. WebTextBox
9. WebRadioButtonList
10. WebDropDownList
11. WebCheckBoxList
12. WebPage(The problem so it doesn't count).
** I cannot state full features of this thing.
The core of the controls are WebInitCollection and WebPage.
To explain how do they work:
Lets say that we have this fresh web form with alot of dots acrossing your monitor, you add the main control WebInitcollection which u can graphically add database tables just by clicking then the control automatically take care of connecting to database and create a dataset(Interoperability from ObjectStudio with .NET framework). One of the feature is it let you see already datas from design-time. After adding this control you can now drag and drop all other controls. For example I can add a webtextbox where it shows an extra property named DataObject, I just click and a nice dropdownlist shows with all the table that i added from WebInitCollection, of course it has another property to choose the column. This makes a databound textbox that has security, web validator, navigation functionality, management and etc stuff without writing any line of code(takes about 5 clic to have all these feature)
Also there are some complex controls such as navigateimagebuttons, weblookup, webcombobox, and etc.
NavigateImagebutton has these features:
1. Let you navigate data- first, next, back, last
2. save, log off, new, delete, refresh, verify data modification etc
3. Also it has nice features such as rollover and etc..
of course all these functionality dont have to implement a single line of the code, its all GUI based "Programming".
WebLookUp is a control which give u a pop up box that lists data and user can search the data he wants and select them.
WebComboBox can show more than 1 columns in the combobox(normally a combobox can show only 1 line) and other features.
In this way the dpt of development could accelerate about 1000% of implamentation time. For statics it takes about 2 days to make a good security based, data access, complex controls and etc however it took about 15 minutes to make a page. For example make a login page that encrypts, has security, data access, management, windows admin conectivity, etc would take about 2-3 minutes.
The first version is currently being used(Lastest project was for Intel pretty kool~) however we decide to make it as flexible in GUI as in code so the developer can have more flexibility in code.
Now, the Problem:
This software is designed for in-house utility which is for only software developers so its installation or setting up the controls are not very pretty. This is what i wanna change in this version.
The problem lies in WebPage. The WebPage is not a control however without this thing the whole thing does not work.
I have skiped the part how to setup to use these controls so ill explain the setup problem.
To use this software the user have to go manually to code behind of the web form(aspx) code behind and change the derivation from System.Web...Page to my WebPage.
also the user MUST override a method called GetWebInitCollection() and return the WebInitCollection control.
To make this threader shorter the problem is to make these process automatically as soon as I add a webform it automatically write code behind to derive from WebPage and have this GetWebInitCollection() property written. Also I want WebInitCollection to be a control like DataSet. Not in sense of data object but im talk about marshalobject thing. Forexample if you drag a dataset to form it goes at the bottom of the IDE where DataAdapter and SQLConnection lies. I could find out how to do it but it does not apply on my situation since deriving from marsharobject(dont remember object name) won't let me persist XML in html view of the page which is a MUST for me. Also I did little research on creating my own boiler template page for adding new file on vs.NET. however its so complex to configure every single machine!. I could not figure the solution for these stuff because im newbie... I only have been working this for 1 year and there are not alot of help out(in the country where i live). Seems like my company is the only company that works on server control project where i live. And biggest problem is Im the only person who work on this thing. Even microsoft .NET regional director in central america doesnt know much of web controls(however his a genious, "bows to him").
I can explain why the WebInitCollection should be in the bottom but it would take too long too so ill pass it. However I would like make it to appear at the bottom also be ABLE TO persist XML in html view of the form.
Solutions needed:
I heard that enterprise template thing is good but i dont exactly know if this apply to my controls.
I read boiler template article from angrycoder but i need something more extensive especially how to configure code behind pages for C# and vb.net.
I need to know if I can add a aspx page and its code behind and resource file can be added to DLL for my software(I couldnt add a aspx page in it so now i manually have to add for setup(there are few controls that needs this page))
For LAST: Anybody have any similar project on your working place? If you do give tips ill buy free beer when u come where i live.
There are more then this problem to solve but I would like to listen from the bests and learn before asking more :D.
P.S. Im posting this with great sincere(is this spelled right?) since Im in analisis and design fase. I think I must figure out before i start coding next week. I read some of your post and you guys know so much more than i do... please share your knowledge.
Exactus Server Controls .NET Developer
www.Exactus.com
[email protected]
IT Software Developer