Giter Site home page Giter Site logo

dotnet-websharper / core Goto Github PK

View Code? Open in Web Editor NEW
583.0 33.0 52.0 26.78 MB

WebSharper - Full-stack, functional, reactive web apps and microservices in F# and C#

Home Page: https://websharper.com

License: Apache License 2.0

F# 94.47% C# 4.38% JavaScript 0.34% Batchfile 0.01% PowerShell 0.08% Shell 0.01% CSS 0.01% HTML 0.29% TypeScript 0.41%
websharper fsharp csharp frp mvu functional fullstack microservices static-site-generator

core's People

Contributors

3dgrabber avatar atadi96 avatar btamas2000 avatar caleb-motivity avatar cata avatar diegopego avatar gitter-badger avatar granicz avatar gygerg avatar isetr avatar jand42 avatar jooseppi12 avatar mrtank avatar panesofglass avatar qwe2 avatar simonjf avatar t0yv0 avatar tahahachana avatar tarmil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

core's Issues

Issues with VS SHELL installation

Hello!

I'm attempting to install Websharper on my dev machine. Currently I have installed VS 2010 Shell with latest F#. My OS is Win XP SP3.

I run the installer for Websharper 2.4.35, then choose Install Now (the simple install). It prompts me to open the installer executable again (which seems strange, but ok), then in the Installation Progress window, it gives the error dialog -

"An unexpected error has occurred: Win32Exception. The error report has been written to..."

And here's the text from the error report -

1
2
3
4
5
6
7
System.ComponentModel.Win32Exception: The system cannot find the file specified
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at IntelliFactory.WebSharper.Install.Main.Shell(String executable, String arguments)
at [email protected](Unit unitVar0)
at IntelliFactory.WebSharper.Install.Util.Guard[a](FSharpFunc`2 action)

So I don't know how much that would tell you guys. I suspect the issue is related to using Websharper with VS 2010 Shell, but that could be a red herring.

I also tried downloading a fresh copy of the installer, but the results were the same.

If we can't troubleshoot this successfully, could I download an older version of Websharper in the interim? If so, please let me know where to get a hold of it.

Thanks all!

Bryan Edds

See http://fpish.net/topic/Some/0/74439


Static Methods/Constructors not triggering needed .js inclusion.

namespace Website

module CollTest = 

    open IntelliFactory.WebSharper
    open IntelliFactory.WebSharper.Html
    open System.Collections.Generic

    [<JavaScript>]
    let private DictPart () =
        // Calling constructors won't include ...Collections.dll.js.
        let d = new Dictionary<string,string>()
        // Calling module methods (static methods) won't.
        let m = [("Aka", "Pizza")] |> Map.ofSeq
        // Calling any instance methods will cause the inclusion of ...Collections.dll.js.
        // Uncomment to make it work.
        // let m = m.Add ("Rosie", "Bagels")
         // Another module method.
        let result = m |> Map.toSeq |> Seq.map (fun (k,v) -> k + " -> " + v)
        Div [
            result 
            |> Seq.map (fun x -> LI [Text x])
            |> OL
        ]
    type CollTestControl () =
        inherit Web.Control ()
        [<JavaScript>]
        override this.Body = DictPart () :> IPagelet

AddColorStop signature in HTML5

Quote from: https://bugs.intellifactory.com/websharper/show_bug.cgi?id=505

Hello,

I would think Html5.CanvasGradient.AddColorStop should have the following
signature: float * string -> unit

The second parameter being the color, as taken from Dive Into HTML5:

Let’s define a gradient that shades from black to white.

my_gradient.addColorStop(0, "black");
my_gradient.addColorStop(1, "white");

Exception in Chrome 17.0.963.79

Uncaught Error: SYNTAX_ERR: DOM Exception 12
$.Define.Website.Canvas.addStopWebsite.dll.min.js:1
$.Define.Website.Client.App.$.Class.get_Body._Website.dll.min.js:1
$.Define.Website.Client.App.$.Class.get_Body.WWebsite.dll.min.js:1
$.Define.IntelliFactory.WebSharper.Html.Events.JQueryEventSupport.$.Class.OnMouse.eeIntelliFactory.WebSharper.Html.dll.min.js:1
a.event.dispatchWebResource.axd:16
a.event.add.j.handle.f

ASP.NET error: setting does not apply in Integrated mode

Starting a website in VS 2011 sometimes produces this error:

HTTP Error 500.22 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Most likely causes:
This application defines configuration in the system.web/httpModules section.

The error disappears when the following is removed from Web.config:

#!xml
    <httpModules>
      <add name="WebSharper.Remoting" type="IntelliFactory.WebSharper.Web.RpcModule, IntelliFactory.WebSharper.Web" />
      <add name="WebSharper.Sitelets" type="IntelliFactory.WebSharper.Sitelets.HttpModule, IntelliFactory.WebSharper.Sitelets" />
    </httpModules>
  </system.web>

Extra files in mobile applications

Right now, there isn't a fully automated way to embed "extra" files/artifacts in mobile applications - the tooling only packages the generated scripts and HTML content.

To accommodate this at the moment, one has to do the following:

  1. Do a clean

  2. Create bin/html manually in the F# mobile project

  3. Copy files/folders there

  4. Do a build on the mobile project to get the rest of the files and the final packages.

Now, we would like to eliminate steps 2/3 above. One solution is to modify ws_mobile.exe to copy extra files before it applies the packaging step.

Proposal: add an extra.files to the mobile projects to be processed by ws_mobile.exe to perform this extra copying.

Here is a proposal format for extra.files:

<project-name> {
    <file-pattern>*
}
...

where is any project name in the same solution. Example to copy some artifacts from the associated web project called WebProject:

WebProject {
    css/*
    images/*
}

HasAttribute returning

Quote from: https://bugs.intellifactory.com/websharper/show_bug.cgi?id=505

The following code returns false for an element with the class we were looking
for:

    [<JavaScript>]
    let (|Class|_|) className (elem : Element) =
        if elem.HasAttribute "class" && (elem.GetAttribute "class").Contains
className then Some elem else None

Downcast error on using extensions with offline and mobile sitelets

To reproduce: create an HTML sitelets project, install one of the extension installers (say BING), and reference it, then try to compile:

System.InvalidCastException: Unable to cast object of type 'IntelliFactory.WebSharper.Bing.Resources.Bing' to type 'IResource'.
   at IntelliFactory.WebSharper.Core.Metadata.activate(Resource resource)
   at [email protected](Resource r)
   at Microsoft.FSharp.Primitives.Basics.List.map[T,TResult](FSharpFunc`2 mapping, FSharpList`1 x)
   at IntelliFactory.WebSharper.Core.Metadata.Info.Create(IEnumerable`1 infos)
   at IntelliFactory.WebSharper.Sitelets.Offline.Output.WriteSite[Action](WriteSiteConfiguration`1 conf)
   at [email protected](Unit _arg1)
   at IntelliFactory.WebSharper.Sitelets.Offline.Main.guard(FSharpFunc`2 action)

IE7 Gets Script Error (unavailable Json.js/Json.min.js assembly resource)

Line: 17
Error: Object doesn't support property or method 'parse'
File: IntelliFactory.WebSharper.Html.dll.js

The generated script include when IE <= 7.0 fails.

<!--[if lte IE 7.0]>
<script type="text/javascript" src="/r2d2/WebResource.axd?d=oq0oQ09uCt_AlDr2wD1fDTKn3q0T49nzDC9i8U1O_fs5hPRM9JEfljqTCDzBWqs-4DXxgEf7NxFtV3ZrLxgZSaNsNy47Soh5nOvDGiqWRVMnl7xer4lTCCdqX0tzQf790&amp;t=634614713120800000">
</script>
<![endif]-->

with exception:

<title>The resource cannot be found.</title>
...
[HttpException]: This is an invalid webresource request.
   at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)

Investigation suggests a WebResource attribute is missing on the IntelliFactory.WebSharper assembly where Json.js and Json.min.js are embedded.


Allow to parameterize templates by ApplicationPath

In addition to the built-in "scripts" variable that expands to WebSharper resource imports, it would be helpful to have a "root" variable that would expand to the ApplicationPath. Such a variable would allow templates to work regardless of the deployment path, in both root and virtual-directory deployments. A common situation is the need to reference a CSS file, which could then be accomplished thus:

#!html
<link href="${root}/themes/site.css" rel="stylesheet" type="text/css" />

Sitelet Error Related to StringBuilder

This error comes intermittently when testing and recently brought FPish down consistently.

Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: chunkLength
ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: chunkLength]
System.Text.StringBuilder.ToString() +12681331
[email protected](Object value) in lliFactory.WebSharper.Sitelets\UrlEncoding.fs:352
[email protected](Action act) in lliFactory.WebSharper.Sitelets\Router.fs:161
<StartupCode$IntelliFactory-WebSharper-Sitelets>[email protected](Action action) in lliFactory.WebSharper.Sitelets\Router.fs:79
[email protected](Action x) in lliFactory.WebSharper.Sitelets\Router.fs:218
<StartupCode$IntelliFactory-WebSharper-Sitelets>[email protected](Object action) in lliFactory.WebSharper.Sitelets\HttpModule.fs:135
[email protected](IEnumerable`1& next) in D:\if-web-trainings\WebSharperSiteletsProject\Layout.fs:408
Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl() +76
Microsoft.FSharp.Collections.SeqModule.ToList(IEnumerable`1 source) +297
[email protected](IEnumerable`1& next) in D:\if-web-trainings\WebSharperSiteletsProject\Layout.fs:403
Microsoft.FSharp.Core.CompilerServices.GeneratedSequenceBase`1.MoveNextImpl() +76
Microsoft.FSharp.Collections.SeqModule.ToList(IEnumerable`1 source) +297
IntelliFactory.Trainings.Layout.DefaultHeader(Action action, Context`1 ctx)
[email protected](Context`1 ctx) in IntelliFactory.Trainings.Templates.Magnifico.MagnificoBody(Context`1 context, MagnificoArgs`1 args) in 
[email protected](Context`1 context) in 
[email protected](Context`1 context) in lliFactory.WebSharper.Sitelets\Controller.fs:144
<StartupCode$IntelliFactory-WebSharper-Sitelets>[email protected](Object sender, EventArgs e) in lliFactory.WebSharper.Sitelets\HttpModule.fs:147
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270

WebSharper fails to compile calls to abstract methods

See attached solution for full source. Error is:

Error   2   Failed to translate a method call: Test(..) [WS.Controls+Base]. c:\users\administrator\documents\visual studio 2010\Projects\Website1\Website1\Website\Controls.fs  21  1   Website

Relevant code is:

[<AbstractClass>]
type Base [<JavaScript>] () =
    [<JavaScript>] // This doesn't seem to make a difference, here just in case.
    abstract Test : unit -> unit

type Other [<JavaScript>] () =
    inherit Base()
    [<JavaScript>]
    override __.Test() = ignore ()

type Control() =
    inherit Web.Control()

    [<JavaScript>]
    override __.Body =
        let c = Other() :> Base
        c.Test()
        Div [] :> _

Samples compilation error

Hello,

I downloaded latest version of WebSharper and tried to build it's samples to better understand how it works. Html5 sample works fine, but Basic sample fails to build with the following error:

IntelliFactory\WebSharper\Samples\Basic\WebSharperSiteletsProject\HelloWorld.fs(59,0): error : Failed to translate object creation: IntelliFactory.WebSharper.Web.Control.

If I exclude "HelloWorld.fs" from the project, it builds fine.

Best regards
Vagif Abilov

See http://fpish.net/topic/Some/0/74305


URL-resolving functions misbehaving on Mono (for Apache use)

I've tried running WebSharper on Apache with mod_mono. Most just worked out
of the box, but I have encountered a problem with Sitelets' links.

My sitelet:

Sitelet.Sum [
    Sitelet.Content "/" Home HomePage
    Sitelet.Content "/About" About AboutPage
]

And I generate such a menu (both in HomePage and AboutPage):

let ( => ) text url =
    A [HRef url] -< [Text text]

let Links (ctx: Context<Action>) =
    UL [
        LI ["Home" => ctx.Link Home]
        LI ["About" => ctx.Link About]
    ]

But both pages have this HTML outputted (only on Apache, IIS version works
just fine):

<ul><li><a href="/">Home</a></li><li><a
href="file:///About">About</a></li></ul

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.