Friday, June 23, 2017
Found on Job Postings...
No two companies use the same one, and most exclude several steps from the map. For instance, if your SDLC does not include the eventual phase-out of your application, then it's incomplete. It's ludicrous to think that any software we develop is going to perform forever, so the phase out - especially of corporate software - is a reasonable part of the plan.
...
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Tuesday, December 4, 2012
Operation is not valid due to the current state of the object.
Visual Studio 2010
Desktop Winforms App
MDI Child form with a Datagridview connected to SQL Server 2008
Error details:
When closing the form, debugger jumps to this line in form.designer.cs (one of the files you are not supposed to edit).
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose(); //<<<---error points here
}
base.Dispose(disposing);
}
and here is the massive error...
System.InvalidOperationException was unhandled
Message=Operation is not valid due to the current state of the object.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.DataGridViewCell.GetInheritedStyle(DataGridViewCellStyle inheritedCellStyle, Int32 rowIndex, Boolean includeColors)
at System.Windows.Forms.DataGridViewCell.GetPreferredWidth(Int32 rowIndex, Int32 height)
at System.Windows.Forms.DataGridViewColumn.GetPreferredWidth(DataGridViewAutoSizeColumnMode autoSizeColumnMode, Boolean fixedHeight)
at System.Windows.Forms.DataGridView.AutoResizeColumnInternal(Int32 columnIndex, DataGridViewAutoSizeColumnCriteriaInternal autoSizeColumnCriteriaInternal, Boolean fixedHeight)
at System.Windows.Forms.DataGridView.OnColumnGlobalAutoSize(Int32 columnIndex)
at System.Windows.Forms.DataGridView.OnColumnCommonChange(Int32 columnIndex)
at System.Windows.Forms.DataGridViewCell.OnCommonChange()
at System.Windows.Forms.DataGridViewComboBoxCell.set_DataSource(Object value)
at System.Windows.Forms.DataGridViewComboBoxCell.DataSource_Disposed(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.ComponentModel.Component.Dispose(Boolean disposing)
at System.Windows.Forms.BindingSource.Dispose(Boolean disposing)
at System.ComponentModel.Component.Dispose()
at System.ComponentModel.Container.Dispose(Boolean disposing)
at System.ComponentModel.Container.Dispose()
at Onesource.MaterialReceiptsEntry.Dispose(Boolean disposing) in P:\Projects\myproject\sample\MaterialReceiptsEntry.Designer.cs:line 18
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DefMDIChildProc(IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Form.DefWndProc(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmSysCommand(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DefMDIChildProc(IntPtr hWnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at System.Windows.Forms.Form.DefWndProc(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
at System.Windows.Forms.ContainerControl.WndProc(Message& m)
at System.Windows.Forms.Form.WmNcButtonDown(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Onesource.Program.Main() in P:\Projects\myproject\sample\Program.cs:line 19
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:
The solution:I was looking through the ugly error stack above and found a lot of references to stuff like GetPreferredWidth. Having previously dealt with numerous problems involving AutoSizeColumnsMode and DataGridViewComboboxColumns, I decided to try testing the form with AutoSizeColumnsMode set to None. The layout did suck, but the form stopped crashing...
This means that the datagridview is trying to resize its columns during a form close! Here is what I did to solve the problem.
I set the AutoSizeColumnsMode to AllCells and added a FormClose event as follows...
private void MaterialReceiptsEntry_FormClosing(object sender, FormClosingEventArgs e)
{
myDataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
}
This ensures that the grid will not be updating its column sizes as the form is closing.
...
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Thursday, November 29, 2012
Case Schizophrenia and the DataGridViewComboboxColumn
Select * from orders where salesrep='bob'
Will find BOB, bob, bOb, etc. (but not Robert)So I have a DataGridViewComboboxColumn for that field, but since the data all comes from Paradox, where anything goes, I have a mixture of case scenarios.
As it turns out, even though your database cares not what capitalization you use, the combobox does. It WILL NOT MATCH a field that has an alternate capitalization of whats in your data.
Example: if you have DONNA in the lookup list, and Donna in the orders table, the dropdown will display SOME RANDOM OTHER NAME.
It also throws a dataerror that looks like...
Order Entry [OrdersGrid]: Row 2 Column 16 Context Formatting, PreferredSize... System.Windows.Forms.DataGridViewDataErrorEventArgs DATA: TONYA
...and it throws this error for each and every row you attempt to display on the screen.
The solution?
All I did was load the Purchase Orders table using the salesman as its own lookup. like this
update Purchase_Order set Salesman=(select Salesman from Salesman S where S.Salesman=Purchase_Order.Salesman)
So, we're looking up the salesman, say "Bob" in the Salesman lookup table (finding, say "BOB") and writing that back over the Bob in the row, essentially updating the names in such a way as to match exactly what's in the lookup table.
Now our DataGridViewComboboxColumns work, and we didn't even have to edit the program!
...
* I still can't make myself use the word indexes.
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Wednesday, August 29, 2012
Sucky Docking in Visual Studio
Even the little box that pops up seems to show it correctly.
Whatever the case, I must now use a splitter - an object with tons of functionality that I don't want - to complete my layout.
Microsoft, you SUCK.
...
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Thursday, September 29, 2011
Mixed Messages
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Tuesday, January 25, 2011
Junk Posts
All the posts are similar, but they come from IP addresses all over the world. Here are the latest ones:
IP address | event occured | Country |
---|---|---|
125.7.106.36 | 2011-01-25 03:15:01.097 | AUSTRALIA |
194.71.15.242 | 2011-01-25 00:15:28.947 | SWEDEN |
58.1.236.52 | 2011-01-24 23:48:23.503 | JAPAN |
62.189.102.229 | 2011-01-24 22:36:23.813 | UNITED KINGDOM |
84.170.167.1 | 2011-01-24 22:16:55.657 | |
174.133.230.40 | 2011-01-24 21:20:31.047 | UNITED STATES |
71.101.103.247 | 2011-01-24 19:31:49.997 | UNITED STATES |
186.88.170.223 | 2011-01-24 14:23:03.003 | VENEZUELA |
216.185.76.74 | 2011-01-24 08:58:20.940 | CANADA |
193.137.203.231 | 2011-01-24 06:30:30.783 | PORTUGAL |
74.121.148.3 | 2011-01-24 05:55:59.257 | UNITED STATES |
219.234.246.248 | 2011-01-24 03:32:39.443 | CHINA |
68.238.66.113 | 2010-12-09 23:07:47.327 | UNITED STATES |
202.108.50.70 | 2010-12-09 09:54:13.323 | CHINA |
190.177.66.185 | 2010-12-09 05:13:55.220 | ARGENTINA |
212.178.200.72 | 2010-12-09 05:09:22.023 | NETHERLANDS |
200.55.16.50 | 2010-12-09 05:04:51.767 | ARGENTINA |
187.9.58.194 | 2010-12-09 01:14:22.237 | BRAZIL |
212.71.32.94 | 2010-12-09 01:06:39.560 | SAUDI ARABIA |
193.56.241.125 | 2010-12-08 23:53:00.620 | FRANCE |
85.255.197.125 | 2010-12-08 21:19:54.407 | |
79.125.121.121 | 2010-12-08 17:09:40.170 | IRELAND |
The thing would not be alarming but the emails (with the java and HTML removed) are all nearly identical. They all look something like this:
Dx6CQw ccvpfvghxsko, [url=http://qdzwgbbwegwf.com/]qdzwgbbwegwf[/url], [link=http://zadpuhxlkcme.com/]zadpuhxlkcme[/link], http://yvetloauhztz.com/
Don't worry, I tried looking for these domains and they are all unregistered. The real payload of the post must have been in the HTML/JavaScript. It is my hope in posting these that some of you googling upon this page might see this and have some insight as to what the point might be. If so, please comment below.
Bryan Valencia is a contributing editor and founder of Visual Studio Journey. He owns and operates Software Services, a web design and hosting company in Manteca, California.
Monday, February 2, 2009
"Server Application Unavailable"
Here's the entire (incorrect) error message as IIS sends it.
The first clue I got that something was Micro-softy was that there was no event logged in the event logger. I think I may have caused this problem when I logged in to the server with Remote Desktop and with Visual Web Developer at the same time, trying to make it select the correct database.Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.
The Solution
- go to the webserver (or remote-desktop in)
- open IIS Manager (Microsoft Internet Information Services)
- browse to the server and website that is broken
- stop the website
- open the site's properties page (right click the name of the site and pick "properties")
- select the ASP.NET tab and change the .net version. Click Apply.
- change the version back to the right (latest) version. Click Apply.
- close the properties page and restart the website.
Tuesday, June 17, 2008
Using A Different Database as a Membership Provider in ASP.NET
There should be no need for me to ask this but after 2 days of ditzing around trying to make this work I am at the end of my patience. Linux is looking better all the time.
Ok, I created a website with security and it works great on my desktop, the performance sucks (utterly) on the test webserver, and I cannot use it at all on the production server. That's because we must use real MSSQL in production rather than a user instance, the production environment does not support user instances.
All I need is to tell my membership, role, and security objects, "Look over here, not over there". One would think that altering a connectionstring and replicating the membership tables would be all thats needed.
But NO.
Plus, I can't seem to find a comprehensive tutorial on this anywhere, so I'm mixing info from blogs and msdn and whatnot trying to make this work. Most of the tutorials out there are for MSSQL2000 (I'm using 2005) and a mix of ASP.NET 2.0 and 3.5 (Im using 3.5 - I think)
Here is what I want.
On my workstation, I want the authentication to look in my local MSSQL Express database for ALL security info.
In Production, I want the web server to look in the FULL MSSQL database for this info.
I do NOT NOT NOT want to re-engineer membership and roles objects.
Here's what I have found so far.
http://msdn.microsoft.com/en-us/library/sx3h274z.aspx - generic - no specifics
http://msdn.microsoft.com/en-us/library/6e9y4s5t.aspx - this adds my new database to the MEMBERSHIP selection but not the Single Provider or Role Provider
http://msdn.microsoft.com/en-us/library/2fx93s7w.aspx - This helps you create the table structure in your database, but leaves out 1 critical piece of info... the fact that I had to type "/sqlexpress" after the server name or it crashes when you try to drop down the list.
http://forums.asp.net/p/980214/2369556.aspx - This is where I found out you have to type "/sqlexpress"
http://msdn.microsoft.com/en-us/library/ms998317.aspx - not sure if "Forms Authentication" is what I'm doing or not...
Wednesday, May 28, 2008
Reconsidering Tables
My blog layout was all CSS. Then I made a simple change and suddenly the blog content started rendering below the sidebar for Firefox only. I started monkeying with the stylesheet and noticed a lot of "fixes" for certain behaviors in IE or Netscape or Firefox.
That's when it hit me. The whole "css, not tables" movement is a false religion, whose promises are nothing but a pipe-dream. Tables behave in a predictable way on every browser. Divs do not.
Thursday, March 20, 2008
Missing Event Handlers
First, has anyone other than me noticed that it takes like 2+ minutes for Visual Web Developer to fully open and come alive? What the hell is it doing? We'll save that for another time.
So you create an Ajax Web Form. You want to put an even handler on Init of the form. How? There is no event icon in the object inspector for the document.
So you click on the Script manager and presto! you get the little lightning bolt icon.
Let's try it with a master page. We create a master and a content page and guess what? There is NO WAY to add an onInit handler to the content page. There's no script manager. If you open the .cs code file and/or double-click the page in the designer, you get a page_load function.
You can try to add one by hand, but where would you put that?....
Ok lets move on.
Slap a button on the screen, and then select the button. Wohoo! the little lightning bolt is there!
Now create a table and put in a row and a cell and put the button in there. Oops, you can no longer click the button and create event handlers, you keep getting the table. In fact the only way I have found to add a handler is to drag the button out of all the panels, tables, etc., and edit it's event handlers, then drag it back into it's table cell and hope it all works.
This is goofy.
The solution is to create all components you need to access the events of outside all tables tables or panels, create the event handlers and then drag (or cut/paste) the objects back into the table or panel.
Tuesday, September 18, 2007
Too Much
System.Web.Lunch.Sandwich.Ham.Swiss.Rye myFood = new System.Web.Lunch.Sandwich.Ham.Swiss.Rye();
or
using Women;
girlFriend GirlFriend = new girlFriend();
Is it just me or is that way too much? No, really, I think we need the object type in there more times, just so the compiler really knows what's going on.
There.
girlFriend GirlFriend = new girlFriend(girlFriend.girlFriend.create(girlFriend)) ;
Monday, September 17, 2007
Microsoft, your Help is Crap!
Ok, I want to use asp.net to build a simple email form that send me an email whenever someone wants to contact me from my website. I figured that after all the easy-login stuff on the toolbar, there would be some kind of ready-made gizmo.
There isn't
Furthermore, when you use the trusty F1, and type asp email form tutorial or simple form tutorial, you get nothing but totally irrelevant crap from the results screen.
So I googled it and ALL the results fall into one of 2 categories.
- downloadable components
- vb.net
What the hell?
So here I am writing like 300 lines of code, and I know it HAS TO BE easier than this... why is it any harder than this?
smtp.send(
mailmessage(
request.querystrings("to").tostring(),
request.querystrings("from").tostring(),
request.querystrings("subject").tostring(),
request.querystrings("body").tostring()
)
)
Why, indeed?
Thursday, August 30, 2007
ASP.NET 2008 Beta: '"SqlDataSource1";' could not be found.
When you get this error in Visual Web Developer 2008 Beta:
The DataSourceID of 'GridView1' must be the ID of a control of type IDataSource. A control with ID '"SqlDataSource1";' could not be found.
do this:
Find the Code that looks like this:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="SqlDataSource1" EmptyDataText="There are no data records to display." GridLines="Vertical"
...and remove the semicolon (;).
Thursday, August 16, 2007
Irrelevant Crap!
Thank you for participating in our beta test. Please tell us how we can improve Visual Studio for you
STOP INCLUDING IRRELEVANT CRAP IN THE HELP SEARCH RESULTS
Update!
Monday, August 6, 2007
Another First (or last) from Microsoft!
According to the wikipedia, I can solve this by reducing the png from 24 bit to indexed, effectively using it just like a gif.
Wednesday, August 1, 2007
Downloading VS 2008
Furthering the weirdness, I am trying to remotely install the same thing on my dev machine from work, and every 10 seconds Norton pops up asking if the install can access the internet. So I can't set it running and forget about it, I have to sit here and monitor it.