|
Wouldn't it be nice to have a development environment where you can program?
1. Choose C # or Vb.net, whichever is productive
2. Design my user interfaces as in Winforms, and as complex as necessary.
3. Automatically generate my application to the web
4. Run in the main browsers, without having to make special settings
5. I can debug the code directly in Visual Studio, while executing in a browser
6. Use websockets transparently to update client from server
It exists and is called Wisej
You can see more details at https://www.wisej.com
real cases at https://madewithwisej.com
a demo http://demo.wisej.com/codeproject
my tutorials on YT www.youtube.com/playlist
#wisej
Thanks for your interest.
|
|
|
|
|
|
and am using WPF on VS2017.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
JaxCoder.com
|
|
|
|
|
 Your JaxCoder site is having problems:
Server Error in '/' Application.
An existing connection was forcibly closed by the remote host
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ComponentModel.Win32Exception: An existing connection was forcibly closed by the remote host
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[Win32Exception (0x80004005): An existing connection was forcibly closed by the remote host]
[SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - An existing connection was forcibly closed by the remote host.)]
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +357
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +79
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +201
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +156
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +22
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +92
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +219
System.Data.SqlClient.SqlConnection.Open() +101
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<Open>b__36(DbConnection t, DbConnectionInterceptionContext c) +10
System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch(TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) +72
System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext) +359
System.Data.Entity.Core.EntityClient.EntityConnection.<Open>b__2() +55
System.Data.Entity.SqlServer.<>c__DisplayClass1.<Execute>b__0() +10
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +75
[EntityException: An exception has been raised that is likely due to a transient failure. If you are connecting to a SQL Azure database consider using SqlAzureExecutionStrategy.]
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +184
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) +78
System.Data.Entity.Core.EntityClient.EntityConnection.Open() +254
[EntityException: The underlying provider failed on Open.]
System.Data.Entity.Core.EntityClient.EntityConnection.Open() +324
System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean shouldMonitorTransactions) +133
System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess) +46
System.Data.Entity.Core.Objects.<>c__DisplayClass7.<GetResults>b__5() +155
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +75
[EntityException: An exception has been raised that is likely due to a transient failure. If you are connecting to a SQL Azure database consider using SqlAzureExecutionStrategy.]
System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +184
System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +282
System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0() +11
System.Data.Entity.Internal.LazyEnumerator`1.MoveNext() +45
System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source) +168
System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1(IEnumerable`1 sequence) +40
System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +60
System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +113
System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(Expression expression) +113
System.Linq.Queryable.FirstOrDefault(IQueryable`1 source) +220
JaxCoderV3._0.Repository.PostRepository.GetDummyPost() in E:\WebSites\JaxCoderV3.0\JaxCoderV3.0\Repository\PostRepository.cs:246
JaxCoderV3._0.Filters.UserTrackingActionFilterAttribute.OnActionExecuted(ActionExecutedContext filterContext) in E:\WebSites\JaxCoderV3.0\JaxCoderV3.0\Filters\UserTrackingActionFilter.cs:30
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +214
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +228
System.Web.Mvc.Async.<>c__DisplayClass33.<BeginInvokeActionMethodWithFilters>b__32(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +49
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +26
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +100
System.Web.Mvc.Async.WrappedAsyncResult`1.CallEndDelegate(IAsyncResult asyncResult) +10
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +44
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +13
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecute>b__15(IAsyncResult asyncResult, Controller controller) +12
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +22
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +28
System.Web.Mvc.Controller.System.Web.Mvc.Async.IAsyncController.EndExecute(IAsyncResult asyncResult) +10
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +21
System.Web.Mvc.Async.WrappedAsyncVoid`1.CallEndDelegate(IAsyncResult asyncResult) +29
System.Web.Mvc.Async.WrappedAsyncResultBase`1.End() +49
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +28
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +9847873
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step) +50
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +163
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.4210.0
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
It does that occasionally, not sure why but fortunately not often. Thanks for the heads up though.
Right now I'm remodeling a home we bought and it needs a lot of work so I won't be able to address for some time.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
JaxCoder.com
|
|
|
|
|
Mike Hankey wrote: remodeling a home
That's cool! Good luck!
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
Thanks, a lot of work, at my age not real fast.
I'm not sure how many cookies it makes to be happy, but so far it's not 27.
JaxCoder.com
|
|
|
|
|
It will forever be possible to build a WinForms desktop app capable to mimic any newer "design" that Microsoft "invents".
After all, UI is pixels displayed on a screen, that need to react to some input (mouse, keyboard, gestures, etc.)
A framework needs features like skinning, high DPI scaling, touch enabled, ribbon, toolbars, menus, nice SVG icons, powerfull grids/trees/scheduler/reporting/dashboards/wordprocessor/Excel/diagrams, with search, navigation, direct edit, filter, grouping, etc.
None of these features comes out of the box in any framework in Visual Studio or elsewhere.
When building a multi-dialog application, I love to use enterprise level UI components.
I have far enough work dealing with my business rules, validation, persistence, layout, etc.
UI components included in java, javascript, linux, etc. or other frameworks do not reach the quality of the .NET ecosystem (see DevExpress, etc.).
|
|
|
|
|
... it's the most cost effective way to build, distribute, and support desktop applications for Windows.
My group builds public facing and internal applications. The public facing applications are web applications -- the relatively low cost of distribution and support are the driving factors. The price for this is increased development time and upgrade costs (due to technology changes). Security is a significant cost as well -- properly securing a web app is a moving target as things change rapidly.
For internal applications we've tried various things, but WinForms distributed as ClickOnce applications wins. The cost & time of development is lower than anything else we've tried, especially web technology. The technology changes slower than other things (especially web technology), so our upgrade and support costs are lower.
Bryan
Every time someone makes something foolproof ... someone else makes a better fool
|
|
|
|
|
It also just works. resizing controls and making layouts was quick. although it would be nice to get a little more modern feel to the Winform control libraries, but I'll take it any day over WPF.
to me it felt like MS saw the web, took ideas from it and implemented something half ass. if they had been done with standard HTML 5 and CSS, they might have won over some web devs, but now we got things like react native, MS missed the boat on that one.
|
|
|
|
|
I believe Microsoft is merging the WPF/UWP technologies. I've used both and they aren't that dissimilar. I am looking forward to getting access to the UWP controls from WPF.
One of the best things about WPF is the ability to go steal a DataGridView control using a WindowsFormsHost if you really need it. With that said, it seems kind of absurd to develop a strict windows forms application these days...
|
|
|
|
|
out of both, I still liked UWP better because of the win2D library let you draw your own controls right to the DirectX. Where no support was made for WPF.
for me it was really hard to discover what I could do in WPF, it felt like I was googling every 5 minutes to figure out how to do something, I didn't have that problem in Winforms and I could generate whole layouts in a small amount of code.
I made a vow after the last job to never touch WPF again.
|
|
|
|
|
I never dug into the win2D library. Sounds pretty cool! Thanks for the tip, i'll go check that out.
I'll admit that WPF has a hell of a learning curve, but when you (have to google less) get it, its pretty damn epic. Also, if you have to draw objects (like you described with Win2D) your totally screwed in WF without a 3rd party library. I literally scrapped and never rebuilt one application that was 95% complete simply because windows forms didn't offer decimal precision direct draw capabilities and the learning curve to WPF took so long that I had to move on to other projects. Similar to you, that experience made me vow to never touch Windows Forms again...
|
|
|
|
|
.. on the scope of the App:
1) Major CRUD application -> winforms is by far the most productive.
2) Tool -> probably winforms again.
3) Networked app -> winforms or possibly a console HttpListner with a svelte web front
Exception up = new Exception("Something is really wrong.");
throw up;
|
|
|
|
|
Quote: If you have a new Windows desktop to build, what framework would you use?
If I'm building a Windows desktop, this comes with a UI. I don't need to choose one.
If I were building a *nix desktop, maybe the question would be relevant though most *nix OS's come with their own "desktop"
And Electron? Is that even a desktop? I thought it was a UI running under a Chrome app? Or something like that.
|
|
|
|
|
Thanks Marc,
the word 'App' was left out. I've corrected it, but it may take a while for the cache to update.
"Time flies like an arrow. Fruit flies like a banana."
|
|
|
|
|
Marc Clifton wrote: If I'm building a Windows desktop, this comes with a UI. I don't need to choose one. What if you were building a Windows laptop?
/ravi
|
|
|
|
|
Quote: Do you love the smell of installers downloading all morning?
What does this mean in the context?
I will not choose any of above, no WPF. Old survey before WPF time copied eh?
|
|
|
|
|
WTF is wrong with you?
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
|
Totally agree ! 
|
|
|
|
|
If Windows Forms is an option, WPF should be an option.
|
|
|
|
|
+1
".45 ACP - because shooting twice is just silly" - JSOP, 2010 ----- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010 ----- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
+1
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
Rating helpful answers is nice, but saying thanks can be even nicer.
|
|
|
|
|
Agreed.
Software Zen: delete this;
|
|
|
|
|