Simple HTTP Post Handler - Best Practice?

I would like to create a fairly simple ASP.Net application that takes an XML record from an HTTP post request, submits it to a process that invokes a command line app that parses the XML file, takes the parsed XML file (as XML), and returns the result. 
For now the process can be synchronous as the transform has to complete and there are no parallel activities that need to be performed.
I'm not sure that writing an HTTP Handler is the way to go, but maybe I'm mistaken.  Plus there are no examples of doing that in Visual Studio 2013 using IIS 8.0 or 8.5 and I don't really understand the value of applying a file extension or processing
an HTTP post to initiate the request, perhaps using a dedicated port.  I already have a class library for handling the process request.
I'm also a little confused about reading the post request - it seems I can just do it during the page load and that I should be able to extract the first request form field - that of course means using a webform to process the request which seems to be the
most straight-forward way to do this. So I'm looking for the best practice for fielding this kind of request.  My target server is Windows 2012, but I'm developing with VS 2013 and C# on Windows 7 using IIS Express and configuring IIS is confusing. 
Overall it is a fairly simple app, but there are so many rich new features in VS 2013 (most of my work has been in VS 2005).  I also want to build a test app and am looking for the best way to do so, although I think I can build a simple client app
to do that.  The business requirements will be to issue the post request from a MarkLogic xquery request which will take care of any JSON wrappers and balance between multiple Windows servers to handle the load.
Thanks for any help with this!
~Tim

Hi Tim,
Thank you for posting in the MSDN forum.
Actually this forum is to discuss the VS IDE, if this issue is related to web development, you could ask this question in the ASP.NET forum:
http://forums.asp.net. If then, you could get an answer more quickly and professional. Thanks for your cooperation.
Best Regards,
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.

Similar Messages

  • Exception Handling best practices?

    Hi, Where can I find the tutorial on exception handling best practices on oracle website?
    I am looking for the sun standards for the exception handling.

    By the way, the google keywords to find that tutorial are "java exception tutorial". In general to find a Java tutorial on topic X the google keywords are "java X tutorial". Prefer tutorials from Oracle when scanning the list of links you get back.

  • ESB Exception Handling Best Practices

    I've update the "ESB Transactions, Error Handling and Resubmit" Lesson PDF to include a best practices section. Go to http://otn.oracle.com/goto/esb and click on the link in the Learning more section. Feedback welcome.

    Hi Dave,
    I checked this document yesterday, it contained 18 pages.
    Some great info in the additional 7 pages, just in time as well: at a customer site we are hitting bug 5547165, the rejected messages being empty. I checked the rejection handlers for BPEL and was investigating how these could be used in case of ESB. Seems you have provided the answer.
    Any chance a fix for the bug mentioned here is in the 10.1.3.3 patch set?
    One more thing: by default the rejected messages for ESB are written to file system, in a directory below the 'home' OC4J instance. Could this be turned into a configurable space in a next release?
    Thanks and best regards, Sjoerd

  • Exception handling best practice

    whats the best practice for exception handling on ?
    - BC
    -controller
    -view layer (Managed beans)
    do we have to handle commit operations on BC so we can rollback like this code
    public void save()
    // create/update/delete ROW
    try
    this.getTransaction().commit();
    catch(JboException e ){this.getTransaction().rollBack();}
    thanks
    Edited by: user3674912 on 23/05/2011 05:18 ص

    Hi,
    IMO, best practices is to handle exceptions as close to their origin. If you can't handle it, you re-throw it as you would in Java so another handler gives it a try
    Frank

  • What are default Zend Session handling best practices to prevent Cross Site Request Forgery?

    I have enjoyed the David Powers book Adobe Dreamweaver CS5 with PHP:  Training from the Source - and have put many of the examples into practice.  I have a security related concern that may be tied to the Zend::Auth example in the book.  While this is installed an working on my site:
    <?php
    $failed = FALSE;
    if ($_POST) {
      if (empty($_POST['username']) || empty($_POST['password'])) {
        $failed = TRUE;
      } else {
        require_once('library.php');
        // check the user's credentials
        try {
          $auth = Zend_Auth::getInstance();
          $adapter = new Zend_Auth_Adapter_DbTable($dbRead, 'user', 'login', 'user_pass', 'sha1(?)');
          $adapter->setIdentity($_POST['username']);
          $adapter->setCredential($_POST['password']);
          $result = $auth->authenticate($adapter);
          if ($result->isValid()) {
            $storage = $auth->getStorage();
            $storage->write($adapter->getResultRowObject(array(
              'ID', 'login',  'user_first', 'user_last', 'user_role')));
            header('Location: /member/index.php');
            exit;
          } else {
            $failed = TRUE;
        } catch (Exception $e) {
          echo $e->getMessage();
    if (isset($_GET['logout'])) {
      require_once('library.php');
      try {
        $auth = Zend_Auth::getInstance();
        $auth->clearIdentity();
      } catch (Exception $e) {
        echo $e->getMessage();
    Apparently, there is  very limited protection against Cross Site Request Forgery, where the resulting SessionID could be easily hijacked?  I am using the Zend Community edition (I have 1.11.11).     I have an observation from a client that this authentication is not up to snuff. 
    To boil it down: 
    1.  Is there a Zend configuration file that might have some settings to upgrade the Session and or authentication security basics? I'm wondering specifically about the settings in /library/Zend/session.php? Ie secure the session against a changing user IP, and invoking some other session handling stuff (time-out etc). 
    2.  If I understand it correctly, "salting" won't help with this, unless it's added/checked via a hidden POST at login time? 
    Ideally, the man himself, David Powers would jump in here - but I'll take any help I can get!
    Thanks!

    Might ask them over here.
    http://forums.asp.net/1146.aspx/1?MVC
    Regards, Dave Patrick ....
    Microsoft Certified Professional
    Microsoft MVP [Windows]
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • ACE http health probes - best practice for interval and passdetect interval?

    Hi,
    Is there a recommended standard for http health probes in terms of interval and passdetect interval timings, i.e. should the passdetect interval always be less than the interval or visa versa? Can a http probe be 'mis-configured', i.e. return a 'false positive' by configuring an interval timeout thats 'incompatible' with the device it's polling?
    I have a http probe for a serverfarm consisting of two Apache http servers and get intermittent 'server reply timeout' probe failures. I'm keen to ensure that the configuration of the probe isn't at fault so I can be confident that a failed probe indicates a problem with the server and not my configuration.
    The probe is currently configured as below:-
    probe http http-apache
      interval 30
      passdetect interval 15
      passdetect count 6
      request method get url /cs/images/ACE.html
      expect status 200 304
    Any advice on the subject woud be gratefully received.
    thanks
    Matthew

    Hi Gilles,
    Thanks for the advice. In another dicussion (found here https://supportforums.cisco.com/message/462397#462397) a poster has stated that:-
    "(The) "Probe interval" should always be less then (open+recieve) timeout  value. Default open & receive timeouts are 10 seconds."
    Are you able to advise on whether the above is correct and if so, why? I currently have an interval value of 30 that obviously goes against the advice above (which I've interpretted to mean that if you leave the open & receive timeouts at their default settings your probe interval should be less than 20 seconds?).
    thanks
    Matthew

  • ICM Scripting Error Handling Best Practice

    Can someone tell me what is the best way to handle errors in ICM scripting. For example false node on Send to VRU or Run Ext Script node, I normally handle this with calltypes for errors and then continue the callflow. But recently I noticed that some of my clients are using peripheral variable to store an error message instead of calltype. I am just wonderinmg which is the best option?

    I don't think you need a call type, I usually set PV10 = "Error: XYZ".  Creating a call type just seems a little redundant, however it would make it easier on the reporting side as you don't have to create any custom queries to search for a specific error type.
    david

  • What to include in a post? - best practice

    Hi all phone users,
    Please be reminded to include all important info before post your issues otherwise it is not possible to troubleshoot or understand the whole course of problems.
    State the phone Info:
    Example for S890:
    Go to Settings > About Phone > Version Infos
    Model (e.g. S960)
    Android version (e.g 4.4.2)
    Build number (e.g. S890_ROW_S111_130201)
    Describe how and(or) what cause(s) the issues happen
    DO NOT post with "I have the same issue" because there could be many other posts with different content and description. It is unsure which situation you are referring to.
    Also, please take note that this is a peer to peer community. Users help each other.
    Thank you.
    Regards,
    Cleo
    WW Social Media
    T61, T410, x240, Z500, Flex 14
    Important Note: If you need help, post your question in the forum, and include your system type, model number and OS. Do not post your serial number.
    Did someone help you today? Press the star on the left to thank them with a Kudo!
    If you find a post helpful and it answers your question, please mark it as an "Accepted Solution"!
    Follow @LenovoForums on Twitter!
    How to send a private message? --> Check out this article.
    English Community   Deutsche Community   Comunidad en Español   Русскоязычное Сообщество

    Hi,
    When defining an InfoCube, characteristics for dimensions are grouped together to enable them to be stored in a star schema table (dimension table).
    The grouping of classification groups (characteristics) whose content is logically connected, under a single generic term. If the dimension contains a characteristic whose value already uniquely determines the values of all other characteristics from a business-orientated viewpoint, then the dimension is named after this characteristic.                                                      
    The customer dimension could, for example, be made up of the customer number, the customer group and the levels of the customer hierarchy.
    The sales dimension could contain the characteristics ‘sales person’, ‘sales group’ and ‘sales office’.                                            
    The time dimension could be given using the characteristics ‘day’ (in the form YYYYMMDD), ‘week’ (in the form YYYY.WW), ‘month’ (in the form YYYY.MM), ‘year’ (in the form YYYY) and ‘period’ (in the form YYYY.PPP).
    If related char are in different dimensions it will affect the reporting performance.
    Hope this helps.
    Thanks,
    JituK

  • TechNet Wiki - Best Practice Blog Posts

    Lately, we've had some great blog posts about best practices on TechNet Wiki. So we're going to share them with you here...
    Wiki
    Life: Commenting on Comments... Care to Comment?- 10/16/14 by Ed Price
    How
    to write a great post on the Wiki - For Dummies - 10/12/14 by Gokan Ozcifci
    Wednesday
    - Wiki Life: The Importance of Longer, High-Quality Articles - 10/8/14 by Ed Price
    Wednesday
    - Wiki Life: 10 ways to become the most hated Wiki ninja on the planet - 10/1/14 by Peter Geelen
    Wiki Life:
    PowerShell PowerPack! - 9/17/14 by Matthew Yarlett
    The
    most unseen and unspoken TechNet Wiki roles: The mentor Role - 6/22/14 by Sandro Periera
    Wiki Life: Smart Tags -
    6/18/14 by Matthew Yarlett
    Wiki Life:
    Ownership and Credibility - 6/11/14 by Matthew Yarlett
    Wiki
    Life: Best Practices for building TechNet Wiki Portals - 6/4/14 by Horizon Net
    Wiki
    life: Technet Wiki tagging, the ugly truth. - 5/29/14 by Peter Geelen
    Wiki Life:
    Getting too Personal!  - 5/14/14 by Matthew Yarlett
    Wiki Life:
    YOU edited MY article??!  - 4/30/14 by Matthew Yarlett
    Wiki
    Life: Are you right in making it a rite to write? - 4/16/14 by Matthew Yarlett
    Wiki Life - Alerts -
    4/9/14 by Alan Carlos
    Wiki
    Life: Speling an gamma, it is umpotant? - 4/2/14 - by Matthew Yarlett
    Wiki
    Life: How to Translate TechNet Wiki Articles - 4/2/14 by Horizon Net 
    Wiki Life:
    Attention to Detail - 3/19/14 by Matthew Yarlett
    Wednesday - Wiki Life - Mobility - 3/12/14 by Alan Carlos
    Wiki
    Life: A Picture is Worth a 1000 Words - 3/5/14 by Matthew Yarlett
    Wiki Life: Cut'N'Paste -
    2/19/14 by Matthew Yarlett
    Wiki Life: How to Join Leadership - 2/19/14 by Horizon Net
    Wiki Life: Featured Articles in the TechNet Wiki - 2/12/14 by Durval Ramos
    Wiki Life: Code.Format() -
    2/5/14 by Matthew Yarlett
    Wiki Life: The CodePlex Corner - 2/5/14 by Horizon Net
    Did you know that we have a layout article? - 1/29/14 by Durval Ramos
    Wiki
    Life: Get to the point, keep it short! - 1/22/14 by Matthew Yarlett
    Wiki Life:
    Planning a Great Article - 1/8/14 by Matthew Yarlett
    Wiki Life: Best Practices for converting an MSDN / TechNet Forum thread into a Wiki Article!!!
    - 12/25/13 by Ed Price
    Wiki Life: Best Practices for Giving Credit - 12/18/13 by Horizon Net
    Wiki Life: How To Fix a Wiki Article TOC  - 12/4/13 by Benoit Jester
    Wiki Life: How To Detect Missing Tags Without any Effort  - 11/20/13 by Benoit Jester
    Wiki Life: How To Import an Microsoft Excel Spreadsheet Into a Wiki Article - 10/30/13 by
    Markus Vilcinskas
    Wiki Life: Cross Linking  - 10/9/13 by Horizon Net
    Wiki Life: User Groups Portal - 10/2/13 by Horizon Net
    Ed Price, Azure & Power BI Customer Program Manager (Blog,
    Small Basic,
    Wiki Ninjas,
    Wiki)
    Answer an interesting question?
    Create a wiki article about it!

    Respected sensei Wiki Ninja,
    what else do you need to start a Wiki article?
    Put you signature in practice!
    So I kindly invite you all to continue your braindump over here:
    http://social.technet.microsoft.com/wiki/contents/articles/27905.technet-wiki-best-practices-blog-posts-articles.aspx
    Peter Geelen (Microsoft Belgium) - Premier Field Engineer Security & Identity
    [If a post helps to resolve your issue, please click the
    "Mark as Answer" of that post or click "Vote as helpful" button
    of that post.
    By marking a post as Answered or Helpful, you help others find the answer faster.

  • Oracle PL/SQL best practice

    Hello experts,
    Is there any place I could find oracle PL/SQL best practice programming advice?  I got a requirement to write a small paper to help new people that come to work for us so I wanted to put some of best practices (or a set of standard tips) in that along with coding standards etc...
    Best regards,
    Igor

    Hello,
    my first links would be
    Re: 10 database commandments
    On Code Reviews and Standards
    Beware: Any discussion about coding standards tends to get lenghty with flame wars about upper/lower/camelcase keywords, indent style etc :-)
    As stated in the linked document: keep them simple.
    Regards
    Marcus
    Best Practices
    Doing SQL from PL/SQL: Best and Worst Practices
    Naming and Coding Standards for SQL and PL/SQL
    PL/SQL Coding Standards
    Also related:
    Performance question
    Re: How to re-construct my cursor ?

  • Is it possible to call a SOAP webservice using HTTP POST adapter

    Hello Experts,
    Is it possible to call a webservice using a HTTP adapter with POST method? If yes, how?
    Regards,
    Diptee

    No this will not work since you have additional SOAP information (i.e. SOAP envelope, security information) in addition to the payload. If you need a simple HTTP-Post for example, then you don't need SOAP, you can use the more simple http protocol without the additional features of SOAP.
    Also refer to this link for differences: Difference b/w SOAP and HTTP

  • Multiple room management -- best practice -- server side http api update?

    Hi Folks, 
    Some of the forum postings on multiple room management are over year old now.  I have student/tutor chat application which has been in the wild for 5 months now and appears to be working well.  There is a single tutor per room, multiple chats and soon to be a whiteboard per student, which is shared with the tutor in a tabbed UI. 
    It is now time to fill out the multiple tutor functionality, which I considered and researched when building, but did not come to any conclusions.   I'm leaning towards a server side implementation.  Is there an impending update to the http api?
    Here is what I understand to be the flow:
    1) server side management of who is accessing the room
    2) load balance and manage the room access 1 time user and owner session from the server side
    3) for my implementation, a tutor will need to login to the room, in order for it to be available
    4) Any reconnection would in turn need to be managed by the server side, and is really a special case of room load balancing.
    My fear is that at some point I'm going to need access to the number of students in the room or similar and this is not available, so that I'll need client functionality, which will need update the server side manager.
    As well, I'm concerned about delays on the server side access to which might create race conditions in a re-connect situation.  User attempts to reconnect, but server side manager thinks that the user is already connected.
    Surely this simple room management has been built, does anyone have any wisdom they can impart?  Is there any best practice guidance or any samples?
    Thanks,
    Doug

    Hi Raff, Thanks a ton for the response.
    I wasn't clear on what I was calling load balancing.  What I mean by this is room assignment for student clients.  We have one tutor per room.  There are multiple students per room, but each is in their own one-on-one chat with the tutor.
    I'm very much struggling with where to do the room assignment / room managemnt, on the server side or on the client side (if that is even possible).  In my testing it is taking upwards of 10 seconds minimum to get a list of rooms (4 virtually empty rooms) and to query the users in a single room (also a minimum of users/nodes in the queried room).   If after this point, I 'redirect' the student to the least full room, then the student incurs the cost of creating a new session and logging into the room.  As well I intend to do a bit of xml parsing, and other processing, so that 10 seconds is likely to grow.
    Would I see better performance trying to do this in the client?
    As far as the server side, at what point does a room go to 'not-active'?
    When I'm querying the roomList, I am considered one of the 'OWNER' users in the UserLists.  At what point can it be safe to assume that I have left the room? 
    Is there documentation on the meaning and lifecycle of the different status codes?  not-active,  not-running, and ok?  Are there others?
    How much staleness can I expect from the server-side queries?
    As far as feature set, the only thing that comes to mind is xpath and or wild card support for getNode() but i think this was mentioned in other posts.
    Regarding the reconnection issues, I am timing out the student after inactivity, and this is probably by and large the bulk of my reconnect use cases.  This and any logout interaction from the student presents a use case where I  may want reassign the student return to the same room as before.  I can envision scenarios of a preferred tutor if available etc.  In this case, I'll need to know list of rooms.  In terms of reconnection failover, this is not not a LCCS / FMS issue.
    Thanks again for responding.

  • Best practices for handling elements and symbols (including preloading)

    I am trying to learn Edge Animate and I have not seen enough animations to know how this is typically handled and I searched the forum and have not found an answer either.
    If you have many different elements and symbols for a project, what is the best practice for having them appear, disappear, etc. on the timeline? I ask this question not only from a performance based perspective, but also keeping in mind the idea of preloading. This is a 2 part question:
    Part 1: Using elements and symbols later in the timeline:
    Since artwork is always imported directly to the stage in an "always on" status, should we place a visibility OFF on every item until we need it?
    or should they be opacity 0 until I need them?
    or should they be set to visibility hidden until I need them?
    Which of these is the best option if you don't want the element / symbol visible until later in the timeline? Does it matter?
    Part 2: Impact on page loading
    Does the above question have any impact upon page loading speed
    or is this something handled in preloading?
    or do you need to make a special preloader?
    Thanks for the help.

    Hi, escargo-
    Good questions!
    Part 1: Using elements and symbols later in the timeline:
    Since artwork is always imported directly to the stage in an "always on" status, should we place a visibility OFF on every item until we need it?
    or should they be opacity 0 until I need them?
    or should they be set to visibility hidden until I need them?
    Which of these is the best option if you don't want the element / symbol visible until later in the timeline? Does it matter?
    I would recommend that you set your visibility to "off" instead of simply changing the opacity.  The reason I suggest this is that when your visibility is set to off, your object's hit points also disappear.  If you have any type of interactivity, having the object still visible but with 0 opacity will interfere with anything you have underneath it in the display order.
    Part 2: Impact on page loading
    Does the above question have any impact upon page loading speed
    or is this something handled in preloading?
    or do you need to make a special preloader?
    Thanks for the help.
    No, none of this has any impact on page load.  As you already noticed, all of the assets of your project will load before it displays.  If you want only part of your composition to load, you may want to do what we call a multi-composition project.  There's a sample of that in the Edge Animate API in the Advanced section, and plenty of posts in the forums (and one in the team's blog) explaining how to do that.
    http://www.adobe.com/devnet-docs/edgeanimate/api/current/index.html
    https://blogs.adobe.com/edge/
    Hope that helps!
    -Elaine

  • We are evaluating the use of iPod touch devices to record best practice videos on our manufacturing floor and to post to an internal Moodle web site. How can you upload a video from the iPod touch to a site other than YouTube?

    We are evaluating the use of iPod touch devices to record best practice videos on our manufacturing floor and to post to an internal Moodle web site. How can you upload a video from the iPod touch to a site other than YouTube? The Moodle upload interface is expecting a file selection dialog box like windows or OSX. I do not want to have to go through an intermediary step of messing with a pc.
    Thanks!

    It should be around 7 and a half gigs. In iTunes, across the bottom there should be a bar that show how much storage is being used and by what. (music, movies, apps, etc.) To make music take up less room, you can check the box to make it convert the music to 128kbps AAC. This lowers the quality, but with most earbuds and speakers, you can't even tell the difference.
    The iPod touch has parental controls built in. You'll find them in Settings. I think they only work for enabling/disabling Safari, Mail, YouTube, and App Store. Here's an app that does more: http://www.mobicip.com/online_safety/ipod_touch

  • Design Choices and is LiveCycle needed? best practices for using RTMP/AMF over HTTP/XML communicatio

    Hi,
    I am new to flex/RIA. I am exploring different design choices especially in client server communication. On client side we will be using Flash based RIA (using Actions scripts).
    There will be some simple forms (like for login, registration, payments etc) and some simple reports including with several graphs and charts. Each chart might have 1000 to 1500 data points etc. There are not video or audio content as such. On server side we have Servlets, java API and some EJBs to provide the business logic and real time prices/content (price update is usually every 10 seconds) /data. Some of the content will be static as well.
    I have following questions in my mind. Is it worth it to use RTMP/AMF channels for the followings?
    1. For simple forms processing (Mapping Actions scripts classes to Java classes). Like to display/retrieve/update data for/from registration forms.
    a. If yes, why? Am I going to be stuck with LCDS? Is it worth it? What could be the cons for heavy usage/traffic scenarios
    b. If not what are the alternates? Should I create the web services? Or only servlets are sufficient (ie. Only HTTP+Java based server side with no LCDS+RTMP+AMF)? All forms need to communicate on secure channel.
    2. For pushing the real time prices/content which we may need to update every 15 seconds on user interface using graphs and charts. Can I do it with some standard J2EE/JMS way with RIA (Flex) on front-end? i.e. Flash application will keep pulling data from some topic. Data can be updated after few secs or few minutes which cant be predicted.
    3. Are there any scalability issues for using RTMP? What happens if concurrent users increase 10 times within a year?
    4. What are the real advantages of using RTMP/AMF instead of simple HTTP/HTTPS probably using xml based objects
    5. Do I need to use LCDS if I am using AMF only on client side? Basically I mean if I am sending an object in form of xml from a servlet. Can some technology in Flash (probably AMF) in client side map it an Action script object?
    6. What are the primary advantages of using LCDS in a system? Is there any alternate solutions? Can I use some standard solutions for data push technologies?
    I would like that my server side implementation can be used by multiple types of clients e.g. RIA browser based, mobile based, third party software (any technology) etc.
    I appreciate if you can kindly refer me to some reading materials which can help me deciding the above. If this is not the right place to post this message then please do refer me to the place where I can post such questions.
    Thanks and Kind regards,
    Jalal

    Hi Jalal,
    Let me see if I can help with some of your questions
    1. Yes, you can use LCDS for simple forms processing. Any time you want to
    move data between the Flex client and the server, LCDS (or its free Open
    source cousin BlazeDS) is going to help. I would expect you would use the
    mx:RemoteObject MXML tag to invoke server side code, passing it the form
    data input by the application user.
    2. If you need to push near real-time data, LCDS gives you the RTMP channel
    which can scale quite nicely. You can then use the mx:Consumer MXML tag to
    subscribe the clients to the messages, which can come from almost anywhere,
    include JMS topics or queues.
    3. RTMP (included in LCDS) is the best option for scaling to tens of
    thousands of users and the LCDS servers can be clustered to proved better
    scaling.
    4. The AMF3 protocol used over the RTMP channels performs much faster than
    simple XML over HTTP. See this blog posting for some tests:
    http://www.jamesward.org/census/.
    5. If you are sending a Flex application XML, then I would recommend using
    the E4X API to work with the XML. This is a pretty nice and powerful way to
    work with XML. If you want Actionscript objects (and probably better
    performance), then using AMF serialization to Actionscript objects is the
    way to go.
    6. Primary advantages? There are many, but mainly you can avoid thinking
    about the plumbing and concentrate on solving your application and business
    logic problems.
    Hope this helps you a little
    Tom Jordahl
    Adobe

Maybe you are looking for